無論何時將文件上傳到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服務使用的常用數據結構,這就是爲什麼這是一個數組)。 –