Instead of using skipper-s3 you can use the aws-sdk module. Download the image to disk (the original), process it, load and delete the original.
var AWS = require('aws-sdk'), fs = require('fs'); sharp(original).resize(800).quality(90).toBuffer(function(err, outputBuffer) { if (err) { ... } else { new AWS.S3({ accessKeyId: 'your access key', secretAccessKey: 'your secret', params : { Bucket : 'your bucket', Key: 'desired filename' } }); s3client.upload({ACL:'public-read', Body: outputBuffer}, function(err, result) { if(err) {
Alternatively, some libraries (e.g. gm ) may accept a remote URL. You can use skipper-s3 to download and then execute the above process (where the original is the s3 url) and it will work too, even not quite executable.
user4707474
source share