背景
我在 S3 存储桶中存储了一些文件(对象)。
每当从 S3 存储桶中删除任何文件时,我的 Lambda 函数都会被触发。
lambda 函数需要从 DynamoDB 中减去对象大小。
问题:
S3 deleteObject 事件不发送对象 大小
示例 S3 deleteObject 事件
{
"Records": [
{
"eventVersion": "2.0",
"eventTime": "1970-01-01T00:00:00.000Z",
"requestParameters": {
"sourceIPAddress": "127.0.0.1"
},
"s3": {
"configurationId": "testConfigRule",
"object": {
"sequencer": "0A1B2C3D4E5F678901",
"key": "HappyFace.jpg"
},
"bucket": {
"arn": "arn:aws:s3:::mybucket",
"name": "sourcebucket",
"ownerIdentity": {
"principalId": "EXAMPLE"
}
},
"s3SchemaVersion": "1.0"
},
"responseElements": {
"x-amz-id-2": "EXAMPLE123/5678abcdefghijklambdaisawesome/mnopqrstuvwxyzABCDEFGH",
"x-amz-request-id": "EXAMPLE123456789"
},
"awsRegion": "us-east-1",
"eventName": "ObjectRemoved:Delete",
"userIdentity": {
"principalId": "EXAMPLE"
},
"eventSource": "aws:s3"
}
]
}
请帮我找到适合我的用例的解决方案。
最佳答案
一种方法是启用版本控制和 check the metadata of the last version .
为避免永久删除版本,您可以设置过期策略或 explicitly delete the version .我可能会同时使用两者来捕获事件处理器(lambda 函数)失败且无法删除文件的情况。
关于amazon-web-services - 如何从 AWS S3 "ObjectRemoved:Delete"事件获取文件大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48546482/