node.js - 在上传到 S3 存储桶之前将给定图像调整为 3 种不同的尺寸

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

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

我使用船长保存到 s3 存储桶的代码如下:

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)调整为3个不同的尺寸(80* 80,100*120 和 130*270)。我想将我的初始图像和3调整大小的图像同时保存到S3 Bucket中。但我无法通过 req.file 提取给定图像的缓冲区。

我在 Stack Overflow 上提到了以下问题,但无法从他们那里得到答案。

  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

有人可以帮忙吗?

最佳答案

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

关于node.js - 在上传到 S3 存储桶之前将给定图像调整为 3 种不同的尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32431560/

相关文章:

javascript - 从命令行输入、command-line-args NPM 模块、node.js/javascript 获取值

node.js - 我如何在端口 80 上获取 node.js express.js

node.js - 如何使用 URI 和服务器连接到 MongoDB 服务器

amazon-web-services - 如何修复 AccessDenied 调用 CopyObject

php - aws s3在laravel中复制和复制文件夹

amazon-web-services - AWS SQS 中缺少 s3 事件

mysql - Grunt 部署/bin/sh : mysql: command not found

java - AWS Java 开发工具包 : Specifying KMS Key Id For EBS

amazon-s3 - 通过表单 POST 将文件直接上传到 S3 时出现 AWS 策略错误 - 简单条件无效

python - 如何使用 Boto 将 UniqueRequestToken 传递给 AWS Mechanical Turk