目前我在S3中有两个存储桶 - 让我们称之为buck
和buck_thumb
。现在,当我将图像上传到buck
存储桶时,会触发lambda函数,将图像大小调整为缩略图,并将缩略图上传到buck_thumb
存储桶。
但现在我想这样做 - 当我在buck
存储桶中发送图像网址时,它会下载图像并重新调整大小。
有办法吗?我只用一个桶就可以做到这一点?
答案 0 :(得分:5)
我所做的是将lambda函数设置为SNS消息事件,因此当我上传到S3存储桶时,我从服务器发送SNS消息到配置的URL,消息是S3到文件的整个路径,所以Lambda可以下载它,调整大小,然后用thumb_或其他任何内容上传。
希望它有所帮助!这是4个月前,但是...我希望它能帮助未来的访客XD
答案 1 :(得分: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
});
}
});