amazon-web-services - 什么时候在 AWS 中触发对象创建事件?
问题描述
需要处理大文件上传到存储桶 (S3),使用事件触发的 Lambda 函数在完成后object-created
开始处理它
从java中的客户端上传调用:
transferUtility.upload("folder", file.getName(), file);
(一种TransferObserver
)
但是查看文档https://docs.aws.amazon.com/lambda/latest/dg/with-s3.html无法明确找到触发事件的时间。
过去时的建议毕竟是 up,但有没有人肯定知道或知道在哪里可以找到这些细节。
观察从 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
第一个条目中的
解决方案
上传完成后立即触发该事件。
上传到 S3 是原子的 - 失败或中断的上传实际上根本不会创建对象 - 因此,根据定义,在操作完成之前无法触发事件,因为在此之前没有创建任何对象。
推荐阅读
- java - Intellij:如何为 javax.annotation.PostConstruct 添加 java.annotation 模块
- node.js - Sinon.JS fake.yields 是如何工作的?
- postgresql - 将 Ecto 中多条记录的两个日期时间列之间的秒数相加
- docker - 是否可以在 docker (docker swarm) 中删除任务?
- amazon-web-services - 如果需要 CloudFormation,EKS 究竟会做什么?
- java - 飞镖结帐代码java
- python - danbooru twitter bot 上的索引错误列表页面超出范围
- mysql - 更新触发器后创建空字符串时出现无法解释的 MySQL 错误 #1064?
- python - ubuntu服务器上的Opencv级联训练参数澄清python
- time - Python如何安排像22:00 - 22:30这样的时间并做具体的工作?