Add getSignedUploadUrl() to aws.js

This commit is contained in:
Johannes Zellner
2015-08-25 10:01:04 -07:00
parent 22793c3886
commit efcdffd8ff
+53 -1
View File
@@ -5,10 +5,14 @@
exports = module.exports = {
AWSError: AWSError,
getAWSCredentials: getAWSCredentials
getAWSCredentials: getAWSCredentials,
getSignedUploadUrl: getSignedUploadUrl,
getSignedDownloadUrl: getSignedDownloadUrl
};
var assert = require('assert'),
AWS = require('aws-sdk'),
config = require('./config.js'),
debug = require('debug')('box:aws'),
superagent = require('superagent'),
@@ -64,3 +68,51 @@ function getAWSCredentials(callback) {
});
}
}
function getSignedUploadUrl(filename, callback) {
assert.strictEqual(typeof filename, 'string');
assert.strictEqual(typeof callback, 'function');
debug('getSignedUploadUrl()');
getAWSCredentials(function (error, credentials) {
if (error) return callback(error);
var s3 = new AWS.S3(credentials);
var params = {
Bucket: config.aws().backupBucket,
Key: config.aws().backupPrefix + '/' + filename,
Expires: 60 * 30 /* 30 minutes */
};
s3.getSignedUrl('putObject', params, function (error, url) {
if (error) return callback(error);
callback(null, url);
});
});
}
function getSignedDownloadUrl(filename, callback) {
assert.strictEqual(typeof filename, 'string');
assert.strictEqual(typeof callback, 'function');
debug('getSignedDownloadUrl()');
getAWSCredentials(function (error, credentials) {
if (error) return callback(error);
var s3 = new AWS.S3(credentials);
var params = {
Bucket: config.aws().backupBucket,
Key: config.aws().backupPrefix + '/' + filename,
Expires: 60 * 30 /* 30 minutes */
};
s3.getSignedUrl('getObject', params, function (error, url) {
if (error) return callback(error);
callback(null, url);
});
});
}