在AWS中触发对象创建的事件时?

时间:2018-06-05 02:19:15

标签: amazon-web-services amazon-s3

需要使用大型文件上传到存储桶(S3),使用object-created事件触发的Lambda函数开始处理 完成后

从java中的客户端上传调用:

transferUtility.upload("folder", file.getName(), file);

(a TransferObserver类型)

但是查看文档https://docs.aws.amazon.com/lambda/latest/dg/with-s3.html无法在事件触发时明确找到。

过去的时态建议毕竟已经结束,但是有人确实知道这一点或者知道在哪里找到这些细节。

在CloudWatch中观察从console.log()插入的更详细日志,有两个条目: { "key": "testing-dev/test150.mp4", "size": 0, "eTag": "d41d8cd98f00b204e9800998ecf8427e", "sequencer": "005B16EEECE6C6C90D" } 和另一个: { "key": "testing-dev/test150.mp4", "size": 432351, "eTag": "05d53b99cba51a1f5c79532fb4effe40", "sequencer": "005B16EEECEF2AA80F" } 对于事件变量中的object元素: event.Records[0].s3.object

请注意第一个条目中的"size": 0

2 个答案:

答案 0 :(得分:1)

上传完成后立即触发事件。

上传到S3是原子的 - 失败或中断的上传实际上根本不创建对象 - 因此,根据定义,事件在操作完成之前无法触发,因为在此之前没有创建任何对象。

答案 1 :(得分:1)

将在上传结束时触发。

如果您使用的是分段上传,则会在完成分段上传操作完成后发生。