我正在为使用Lambda的S3编写一个自动化图像调整大小工具。我希望在PUT操作时在存储桶的子文件夹中创建缩略图,但是如果我将文件放在存储桶中的任何位置,则会触发事件。AWS Lambda - 完全基于S3存储桶的事件
有些人可以告诉我如何使事件在指定存储区的根目录中执行,但在其子文件夹中没有?
我正在为使用Lambda的S3编写一个自动化图像调整大小工具。我希望在PUT操作时在存储桶的子文件夹中创建缩略图,但是如果我将文件放在存储桶中的任何位置,则会触发事件。AWS Lambda - 完全基于S3存储桶的事件
有些人可以告诉我如何使事件在指定存储区的根目录中执行,但在其子文件夹中没有?
它看起来并不像您可以配置S3通知解雇只在特定的路径,那么最好的选择就是实现这个逻辑在你的lambda函数:
var key = event.Records[0].s3.object.key;
if (key.indexOf('/') === -1) {
// No slash in key name, must be in root of bucket, do stuff here
}
这工作,因为如果对象是在子文件夹中并且不是的根,关键是have a slash in the name。
谢谢。所以我认为缺点是我使用LAMBDA在子文件夹中创建的任何文件都会触发事件,然后最终耗费我的成本? – Leo
@Leo不幸的是。然而,在这些情况下,因为你的函数应该立即退出(而不是做任何调整大小等),所以开单时间应该更短。 –