我正在使用 Lambda 为 S3 编写一个自动图像大小调整工具。我想在执行 PUT 操作时在存储桶的子文件夹中创建缩略图,但是如果我将文件放在存储桶中的任何位置,则会触发事件。
有人可以告诉我如何仅在指定存储桶的根目录中的操作而不是在其子文件夹中的操作使事件着火吗?
我正在使用 Lambda 为 S3 编写一个自动图像大小调整工具。我想在执行 PUT 操作时在存储桶的子文件夹中创建缩略图,但是如果我将文件放在存储桶中的任何位置,则会触发事件。
有人可以告诉我如何仅在指定存储桶的根目录中的操作而不是在其子文件夹中的操作使事件着火吗?
您似乎无法将 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
}
这将起作用,因为如果对象位于子文件夹而不是根目录中,则键的名称中将带有斜杠。