无论何时将文件上传到S3,我都明白S3可以向SQS写入消息。但是,从Python访问SQS消息体中的文件名(“key”:“filename.txt”)有点问题,因为它是一个包含多个字典的列表的字典。访问由S3创建的AWS SQS消息的Python
当有人通过S3事件创建消息时,是否有人访问过SQS消息体中的文件名?
完整的信息是:
{
"Records": [{
"eventVersion": "2.0",
"eventSource": "aws:s3",
"awsRegion": "us-west-2",
"eventTime": "2016-12-04T22:14:52.325Z",
"eventName": "ObjectCreated:Put",
"userIdentity": {
"principalId": "ABC123"
},
"requestParameters": {
"sourceIPAddress": "12.345.687.899"
},
"responseElements": {
"x-amz-request-id": "ABC123",
"x-amz-id-2": "ABCDEF"
},
"s3": {
"s3SchemaVersion": "1.0",
"configurationId": "MyQueueName",
"bucket": {
"name": "mybucket",
"ownerIdentity": {
"principalId": "ABC123"
},
"arn": "arn:aws:s3:::mybucket"
},
"object": {
"key": "filename.txt",
"size": 2310,
"eTag": "defg123",
"sequencer": "00345"
}
}
}]
}
你肯定心不是你要解析一个标准的JSON响应消息? –
另外,''object':“key”:“filename.txt”'isnt有效的JSON或Python字典语法,所以我认为你错过了一些转义字符 –
@ cricket_007我认为这是一个错字 - 这个消息已被消毒。它实际上是“对象”:{“key”:“filename.txt”,“size”:...'...是的,标准的JSON。 OP需要提取(伪代码)from_json(this) - >记录[0] - > object-> key。也许你可以帮忙吗?我对这个JSON数据结构非常熟悉,但我不是一个Python人。 Records数组总是只有1个成员(这个数据结构是多重AWS服务使用的常用数据结构,这就是为什么这是一个数组)。 –