Skip to content

Instantly share code, notes, and snippets.

@petarjs
Created February 5, 2018 20:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save petarjs/1c651f388d8ada5077cb083164dcb83d to your computer and use it in GitHub Desktop.
Save petarjs/1c651f388d8ada5077cb083164dcb83d to your computer and use it in GitHub Desktop.
var when = require('when');
var AWS = require('aws-sdk');
var _ = require('lodash');
var s3;
var bucket = null;
function getImage(url) {
return when.promise(function(resolve, reject) {
if(!bucket) {
return reject('no bucket defined');
}
console.time('s3.getObject - ' + url);
s3.getObject({
Bucket: bucket,
Key: url
}, function(err, image) {
console.log('get image from S3 - :url'.replace(':url', url));
console.timeEnd('s3.getObject - ' + url);
if(err) reject(err);
if(!err) {
image.Key = url;
resolve(image);
}
});
})
}
var saveImage = _.curry(function(name, image) {
return when.promise(function(resolve, reject) {
if(!bucket) {
return reject('no bucket defined');
}
console.log('saving image to S3');
s3.putObject({
Bucket: bucket,
Key: name,
Body: image.Body
}, function(err, image) {
if(err) reject(err);
if(!err) resolve(image);
});
});
});
function init(opts) {
bucket = opts.bucketName;
s3 = new AWS.S3({
region: 'us-west-2',
params: {
Bucket: opts.bucketUrl
}
});
}
exports.getImage = getImage;
exports.saveImage = saveImage;
exports.init = init;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment