Aws lambda AWS Lambda-仅在S3存储桶根上的事件

Aws lambda AWS Lambda-仅在S3存储桶根上的事件,aws-lambda,Aws Lambda,我正在使用Lambda为S3编写一个自动图像大小调整工具。我希望在执行PUT操作时在bucket的子文件夹中创建缩略图,但如果我将文件放在bucket中的任何位置,则会触发事件 有人能告诉我如何在指定bucket的根目录中的操作上触发事件,但在其子文件夹中不触发事件吗 您似乎无法将S3通知配置为仅在某些路径上触发,因此最好的选择是在Lambda函数中实现此逻辑: var key=event.Records[0].s3.object.key; if key.indexOf'/'=-1{ //键名中

我正在使用Lambda为S3编写一个自动图像大小调整工具。我希望在执行PUT操作时在bucket的子文件夹中创建缩略图,但如果我将文件放在bucket中的任何位置,则会触发事件


有人能告诉我如何在指定bucket的根目录中的操作上触发事件,但在其子文件夹中不触发事件吗

您似乎无法将S3通知配置为仅在某些路径上触发,因此最好的选择是在Lambda函数中实现此逻辑:

var key=event.Records[0].s3.object.key; if key.indexOf'/'=-1{ //键名中没有斜杠,必须在bucket的根中,在这里执行操作 }
这将起作用,因为如果对象位于子文件夹而不是根文件夹中,则键将起作用。

看起来您无法将S3通知配置为仅在某些路径上触发,因此最好的选择是在Lambda函数中实现此逻辑:

var key=event.Records[0].s3.object.key; if key.indexOf'/'=-1{ //键名中没有斜杠,必须在bucket的根中,在这里执行操作 }
这将起作用,因为如果对象位于子文件夹而不是根文件夹中,则键将使用前缀过滤器。例如,使用uploads/前缀过滤器配置触发器。它将在创建uploads/thumb1.jpg时触发,但不会在创建任何其他前缀/thumb1.jpg时触发。然后,只需确保在放置缩略图时,在键中使用前缀即可


使用前缀过滤器。例如,使用uploads/前缀过滤器配置触发器。它将在创建uploads/thumb1.jpg时触发,但不会在创建任何其他前缀/thumb1.jpg时触发。然后,只需确保在放置缩略图时,在键中使用前缀即可


谢谢你。所以我想缺点是,我使用LAMBDA在bucket中的子文件夹中创建的任何文件都会触发事件,然后导致我付出代价?@Leo是的,很不幸。但是在这些情况下,因为您的函数应该立即退出,而不进行任何大小调整等。计费的持续时间应该更低。谢谢。所以我想缺点是,我使用LAMBDA在bucket中的子文件夹中创建的任何文件都会触发事件,然后导致我付出代价?@Leo是的,很不幸。但是,在这些情况下,因为您的函数应该立即退出,而不进行任何大小调整等。计费的持续时间应该更低。