AWS -a配置触发器以仅检测目录创建而不检测文件创建

时间:2019-04-17 21:48:43

标签: amazon-web-services amazon-s3 triggers aws-lambda

我正在设置一个lambda函数,使其仅在s3中创建目录而不是文件时被触发

示例:{bucket-name} / a / b / c / d /

a,b,c,d是存储桶中的目录。

我想在创建键“ d”(d不是文件,它是目录)时触发一个lambda函数。

根据我的研究,

  1. 仅可以提及确定的前缀,而不是提及{bucket-name} / * /

  2. 触发器中没有用于检查目录创建的特定过滤器。文件和目录的创建与放置对象相同 操作。我只想在特定深度的目录创建过程中触发,在此示例中-我不想触发 在目录/ s3键创建a,b或c的过程中。我只需要在d的目录创建过程中触发(在更深层次上)。设置lambda触发器时,可以通过任何方式完成此操作吗?

1 个答案:

答案 0 :(得分:1)

S3不是文件系统-它是对象存储。但是,以“ /”结尾的键通常被视为文件夹,因此也许这是一种检查方式。

因此,我将让我的lambda检查对象键是否带有尾随“ /”,并将其视为文件夹创建。

请注意,您可以使用后缀“ /”创建文件对象,只是无法通过控制台执行此操作,但是如果您可以控制密钥的创建,则应该可以避免这种情况。

编辑: 为了解决您希望lambda仅在创建“文件夹”时(而不是针对添加的每个文件)才触发的注释,当前不支持此功能。除非您要处理数十亿个文件,否则我不会太担心lambda成本。每花费250毫秒即可运行256MB RAM的功能,每百万个对象只需不到$ 5。