我正在设置一个lambda函数,使其仅在s3中创建目录而不是文件时被触发
示例:{bucket-name} / a / b / c / d /
a,b,c,d是存储桶中的目录。
我想在创建键“ d”(d不是文件,它是目录)时触发一个lambda函数。
根据我的研究,
仅可以提及确定的前缀,而不是提及{bucket-name} / * /
触发器中没有用于检查目录创建的特定过滤器。文件和目录的创建与放置对象相同 操作。我只想在特定深度的目录创建过程中触发,在此示例中-我不想触发 在目录/ s3键创建a,b或c的过程中。我只需要在d的目录创建过程中触发(在更深层次上)。设置lambda触发器时,可以通过任何方式完成此操作吗?
答案 0 :(得分:1)
S3不是文件系统-它是对象存储。但是,以“ /”结尾的键通常被视为文件夹,因此也许这是一种检查方式。
因此,我将让我的lambda检查对象键是否带有尾随“ /”,并将其视为文件夹创建。
请注意,您可以使用后缀“ /”创建文件对象,只是无法通过控制台执行此操作,但是如果您可以控制密钥的创建,则应该可以避免这种情况。
编辑: 为了解决您希望lambda仅在创建“文件夹”时(而不是针对添加的每个文件)才触发的注释,当前不支持此功能。除非您要处理数十亿个文件,否则我不会太担心lambda成本。每花费250毫秒即可运行256MB RAM的功能,每百万个对象只需不到$ 5。