Всякий раз, когда файл загружается на S3, я ценю, что S3 может написать сообщение SQS. Однако доступ к имени файла («ключ»: «filename.txt») в теле сообщения SQS из Python является немного проблематичным, поскольку это словарь, содержащий список с несколькими словарями.Python, получающий сообщение AWS SQS, созданное S3
Кто-нибудь обращался к имени файла в теле сообщения SQS, когда , что сообщение было создано событием S3?
Полное сообщение:
{
"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 "' is is valid JSON или синтаксис словаря Python, поэтому я думаю, что вам не хватает каких-либо управляющих символов –
@ cricket_007 Я думаю, что это опечатка - это сообщение было дезинфицировано , Это фактически «объект»: {«ключ»: «filename.txt», «размер»: ... '... да, стандартный JSON. OP необходимо извлечь (псевдокод) from_json (this) -> Record [0] -> object-> key. Возможно, вы можете помочь с этим? Я очень хорошо знаком с этой структурой данных JSON, но я не человек-питон. Массив записей всегда имеет только 1 член (эта структура данных является общей, используемой мультиплексированными службами AWS, поэтому это массив). –