我有几个不同客户端上传文件的amazon s3存储桶,通常使用sftp。由于不同的客户端以不同的方式访问存储桶,我无法准确预测它们将如何上传文件。我想在新文件到达时收到通知,所以当任何s3对象创建甚至被触发时,我让桶写入SNS主题。但是,对于某些客户端,这会为每个文件创建生成3个不同的事件:
ObjectCreated:Put
事件ObjectCreated:Copy
事件ObjectCreated:CompleteMultiPartUpload
,还有完整的文件大小。我有一个lambda函数侦听此事件,我希望它只对每个文件执行一次。有没有区分这些重复事件?
我不希望s3存储桶只写Copy
或CompleteMultiPartUploads
,因为我担心一些客户端只会触发其中一个(除非有一些保证其中一个每个s3文件创建的触发器,但我没有在任何地方的文档中看到过。)
我真的不想使用我的lambda将数据库中的接收文件记录下来,因为这会使客户端合法地重新上传具有相同名称的文件时遇到挑战。
我确信我的lambda工作正常,这些是不同的事件,而不是重试
答案 0 :(得分:1)
您应该仅收到一个文件通知。但是无论如何,对于s3文件事件触发器,您可以使用选项All object create events
选项。每个文件将发送一个事件。