在上传到S3 Bucket之前,将给定图像调整为3种不同的尺寸

时间:2015-09-07 05:19:03

标签: node.js amazon-web-services amazon-s3 npm sails.js

我目前正在使用Skipper S3 npm模块通过Sails JS将图像保存到S3 Bucket中。

使用skipper保存到s3存储桶的Code如下:

req.file('imageName').upload({
        saveAs: 'FileName.png',
        adapter: require('skipper-s3'),
        key: 'key',
        secret: 'secret',
        bucket: 'bucketName'
    }, function whenDone(err, uploadedFiles) {
        if (err)
            //error handling
        else
            // return back the Image URl into S3.
    });

目前我正在遵循此link中提供的方法。此方法效率不高,因图像大小而异。

我的要求是将图片(.png.jpg,.tif,.gif)的大小调整为<​​em> 3 不同的尺寸(80 * 80,100 * 120和130 * 270)。我想同时将初始图像和 3 已调整大小的图像保存到S3 Bucket。但是我无法通过req.file为给定的图像提取缓冲区。

我已经提及以下有关Stack溢出的问题,但我无法从他们那里得到答案。

  1. Skipper in SailsJS (beta) image resize before upload
  2. Uploading multiple files with Sails.js 0.10 and Skipper using Dropzone.js
  3. Sails.js File upload with Skipper to AWS S3
  4. 有人可以帮忙吗?

1 个答案:

答案 0 :(得分:3)

您可以将图像大小调整过程从应用程序分离到AWS Lambda。将图像上传到S3存储桶后,将触发AWS Lambda函数。 AWS提供了一个简单的演练来调整图像大小:Handling Amazon S3 Events Using the AWS CLI (Node.js)