使用AWS lambda在同一存储桶中调整图像大小

问题描述 投票:3回答:2

目前我在S3中有两个桶 - 让我们称之为buckbuck_thumb。现在,当我将图像上传到buck存储桶时,会触发lambda函数,将图像大小调整为缩略图,并将缩略图上传到buck_thumb存储桶中。

但现在我想让它变成 - 当我在buck桶中发送图像网址时,它会下载图像并重新调整大小。

有办法吗?我只用一个桶就可以做到这一点?

amazon-web-services amazon-s3 aws-lambda
2个回答
5
投票

我做的是我将lambda函数设置为SNS消息事件,所以当我上传到S3存储桶时,我从服务器发送SNS消息到配置的URL,消息是S3到文件的整个路径,所以Lambda可以下载它,调整大小,然后用thumb_或任何其他内容上传。

希望能帮助到你!这是4个月前,但是...我希望它能帮助未来的游客XD


1
投票

如果你只是这样做,那么你上传 - >调整大小 - >上传 - >调整大小.....无限循环。因此,您应该过滤图像的大小。如果图像已经是合适的尺寸,请停止该功能。

gm(data.Body)
.size(function (err, size) {
  if(err){
    callback('gm(data.Body) error');
    context.fail(err);
  }
  if (size.width <= resizeWidth && size.height <= resizeHeight) {
    console.log('already resized')
    context.succeed({
    "error":false
     });
   }
 });
© www.soinside.com 2019 - 2024. All rights reserved.