Direct S3
HTML
<script src="https://sdk.amazonaws.com/js/aws-sdk-2.0.0-rc1.min.js"></script>
<input type="file" id="file-chooser" />
<button id="upload-button" style="display: none">Upload to S3</button>
<div id="results"></div>
<div id="fb-root"></div>
<input type="file" id="file-chooser" />
<button id="upload-button" style="display: none">Upload to S3</button>
<div id="results"></div>
<div id="fb-root"></div>
JavaScript
var appId = '392600167508980';
var roleArn = 'arn:aws:iam::826078311284:role/topiee';
var bucketName = 'topiee';
var fbUserId;
var bucket = new AWS.S3({params: {Bucket: bucketName}});
var fileChooser = document.getElementById('file-chooser');
var button = document.getElementById('upload-button');
var results = document.getElementById('results');
button.addEventListener('click', function() {
var file = fileChooser.files[0];
if (file) {
results.innerHTML = '';
//Object key will be facebook-USERID#/FILE_NAME
var objKey = 'facebook-' + fbUserId + '/' + file.name;
var params = {Key: objKey, ContentType: file.type, Body: file, ACL: 'public-read'};
bucket.putObject(params, function (err, data) {
if (err) {
results.innerHTML = 'ERROR: ' + err;
} else {
var imageTag = "<img src='" + "https://s3-ap-northeast-1.amazonaws.com/" + bucketName + "/" + objKey + "'></img><br/>";
results.innerHTML += imageTag;
}
});
} else {
results.innerHTML = 'Nothing to upload.';
}
}, false);
/*!
* Login to your application using Facebook.
* Uses the Facebook SDK for JavaScript available here:
* https://developers.facebook.com/docs/javascript/gettingstarted/
*/
window.fbAsyncInit = function() {
FB.init({ appId: appId });
FB.login(function(response) {
bucket.config.credentials = new AWS.WebIdentityCredentials({
ProviderId: 'graph.facebook.com',
RoleArn: roleArn,
WebIdentityToken: response.authResponse.accessToken
});
fbUserId = response.authResponse.userID;
button.style.display = 'block';
});
};
// Load the Facebook SDK asynchronously
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src =...