S3 事件通知只发送元数据到 SQS
S3 event notification only sends metadata to SQS
正在尝试了解 SQS。
我最近启用了 S3 事件以将数据从 S3 同步到 SQS。当我将文件(一些纯文本数据)上传到 S3 时,我只能在 SQS 队列中看到(上传到 S3 的文件的)元数据,而不是文件中的实际数据。
下面是我从 SQS cli 得到的响应。
{
"Messages": [{
"Body": "{\"Records\":[{\"eventVersion\":\"2.1\",\"eventSource\":\"aws:s3\",\"awsRegion\":\"us-west-2\",\"eventTime\":\"2019-02-03T04:20:52.812Z\",\"eventName\":\"ObjectCreated:Put\",\"userIdentity\":{\"principalId\":\"AWS:AROAJPPH7T6UMTQNWQDV4:email@email.com\"},\"requestParameters\":{\"sourceIPAddress\":\"***.***.95.237\"},\"responseElements\":{\"x-amz-request-id\":\"D0FBEB5DD148EC84\",\"x-amz-id-2\":\"F7q+hW5hb6f02J42gT1wWDWjAp2wuQ3ojio1n2Bz/jZCS+e+6/zjkYsUfRNB59dqH61p67rPJDU=\"},\"s3\":{\"s3SchemaVersion\":\"1.0\",\"configurationId\":\"SQS-hops-mab-new-hotelids\",\"bucket\":{\"name\":\"bukcet-name\",\"ownerIdentity\":{\"principalId\":\"A3HAX2MIKOSGAO\"},\"arn\":\"arn:aws:s3:::bukcet-name\"},\"object\":{\"key\":\"prefix/data_file\",\"size\":80,\"eTag\":\"b10063d01db20998584a425f0fa77a29\",\"sequencer\":\"005C566C24C2E9A48A\"}}}]}",
"ReceiptHandle": "AQEBGIumiawoH/pKK5deThbTsCuZ8bWlgF/p8qiL1VTrDqpkUkVxWUxlzMftEtfRzqFZKx+nyUCjuSb50Oicd7hq51LUexOro0+GTVtQsxJlEJ9RaxIk+7/Ia1Ac7ox2G4Mt1nnFBDiEsiPgwYwbQe0fAz1EFiI3QZuZtOdyPNFAIaObPJGhF591IwSA6xhIqgHYJwo5pvw/axVCd05Ex34wg/TFIN9Ha4RVUSDWFXpBmPtM/1V6Ek6HP/Ag0Ps3HKhG1KNOFUjq0mv6bGqaXI/HuxCGitj3uk0xX25y0lT+RFomWcDyKpbmfm2fue8StABrKE7sm/inc1Zbd/4qKFTNUdPqQVqIr3s55plAPDXGvNiXBx4O7FkrE1jrxHBeONMRrlYHe2/KeL0WaITYu3dxNw==",
"MD5OfBody": "0c04939f7c38ff3f9992ef911b514ed7",
"MessageId": "f7fcb7da-66cb-4a59-acf0-79f75e9a60ce"
}]
}
下面是上面 Body 部分的元数据。
{
"Records": [{
"eventVersion": "2.1",
"eventSource": "aws:s3",
"awsRegion": "us-west-2",
"eventTime": "2019-02-04T01:00:31.166Z",
"eventName": "ObjectCreated:Put",
"userIdentity": {
"principalId": "AWS:AROAJPPH7T6UMTQNWQDV4:email@****.com"
},
"requestParameters": {
"sourceIPAddress": "***.***.95.237"
},
"responseElements": {
"x-amz-request-id": "24703DDF194A1F7E",
"x-amz-id-2": "wwpJeU6B3yZT7qaB7imsucsaM8y1hpFBi14POL4L1/2C1/CoBRkdHLgIOPzyy85a3RPJQFfE9Ys="
},
"s3": {
"s3SchemaVersion": "1.0",
"configurationId": "SQS-name",
"bucket": {
"name": "bucket-name",
"ownerIdentity": {
"principalId": "A3HAX2MIKOSGAO"
},
"arn": "arn:aws:s3:::bucket-name"
},
"object": {
"key": "prefix/datafile",
"size": 80,
"eTag": "b10063d01db20998584a425f0fa77a29",
"sequencer": "005C578EAF156E8A91"
}
}
}]
}
S3 事件通知不是将实际数据发送到 SQS 吗?我错过了什么吗?
是的,这是正确的 SQS 将仅获取 created/modified 或基于通知事件的 S3 对象的元数据。无论您选择哪种目的地类型,所有目的地的 S3 通知结构都是相同的。 S3 对象可以是任何音频、视频或一些巨大的 JSON 文件。 SQS 有它的 limits,它不能总是接收实际的 S3 对象。
正在尝试了解 SQS。
我最近启用了 S3 事件以将数据从 S3 同步到 SQS。当我将文件(一些纯文本数据)上传到 S3 时,我只能在 SQS 队列中看到(上传到 S3 的文件的)元数据,而不是文件中的实际数据。
下面是我从 SQS cli 得到的响应。
{
"Messages": [{
"Body": "{\"Records\":[{\"eventVersion\":\"2.1\",\"eventSource\":\"aws:s3\",\"awsRegion\":\"us-west-2\",\"eventTime\":\"2019-02-03T04:20:52.812Z\",\"eventName\":\"ObjectCreated:Put\",\"userIdentity\":{\"principalId\":\"AWS:AROAJPPH7T6UMTQNWQDV4:email@email.com\"},\"requestParameters\":{\"sourceIPAddress\":\"***.***.95.237\"},\"responseElements\":{\"x-amz-request-id\":\"D0FBEB5DD148EC84\",\"x-amz-id-2\":\"F7q+hW5hb6f02J42gT1wWDWjAp2wuQ3ojio1n2Bz/jZCS+e+6/zjkYsUfRNB59dqH61p67rPJDU=\"},\"s3\":{\"s3SchemaVersion\":\"1.0\",\"configurationId\":\"SQS-hops-mab-new-hotelids\",\"bucket\":{\"name\":\"bukcet-name\",\"ownerIdentity\":{\"principalId\":\"A3HAX2MIKOSGAO\"},\"arn\":\"arn:aws:s3:::bukcet-name\"},\"object\":{\"key\":\"prefix/data_file\",\"size\":80,\"eTag\":\"b10063d01db20998584a425f0fa77a29\",\"sequencer\":\"005C566C24C2E9A48A\"}}}]}",
"ReceiptHandle": "AQEBGIumiawoH/pKK5deThbTsCuZ8bWlgF/p8qiL1VTrDqpkUkVxWUxlzMftEtfRzqFZKx+nyUCjuSb50Oicd7hq51LUexOro0+GTVtQsxJlEJ9RaxIk+7/Ia1Ac7ox2G4Mt1nnFBDiEsiPgwYwbQe0fAz1EFiI3QZuZtOdyPNFAIaObPJGhF591IwSA6xhIqgHYJwo5pvw/axVCd05Ex34wg/TFIN9Ha4RVUSDWFXpBmPtM/1V6Ek6HP/Ag0Ps3HKhG1KNOFUjq0mv6bGqaXI/HuxCGitj3uk0xX25y0lT+RFomWcDyKpbmfm2fue8StABrKE7sm/inc1Zbd/4qKFTNUdPqQVqIr3s55plAPDXGvNiXBx4O7FkrE1jrxHBeONMRrlYHe2/KeL0WaITYu3dxNw==",
"MD5OfBody": "0c04939f7c38ff3f9992ef911b514ed7",
"MessageId": "f7fcb7da-66cb-4a59-acf0-79f75e9a60ce"
}]
}
下面是上面 Body 部分的元数据。
{
"Records": [{
"eventVersion": "2.1",
"eventSource": "aws:s3",
"awsRegion": "us-west-2",
"eventTime": "2019-02-04T01:00:31.166Z",
"eventName": "ObjectCreated:Put",
"userIdentity": {
"principalId": "AWS:AROAJPPH7T6UMTQNWQDV4:email@****.com"
},
"requestParameters": {
"sourceIPAddress": "***.***.95.237"
},
"responseElements": {
"x-amz-request-id": "24703DDF194A1F7E",
"x-amz-id-2": "wwpJeU6B3yZT7qaB7imsucsaM8y1hpFBi14POL4L1/2C1/CoBRkdHLgIOPzyy85a3RPJQFfE9Ys="
},
"s3": {
"s3SchemaVersion": "1.0",
"configurationId": "SQS-name",
"bucket": {
"name": "bucket-name",
"ownerIdentity": {
"principalId": "A3HAX2MIKOSGAO"
},
"arn": "arn:aws:s3:::bucket-name"
},
"object": {
"key": "prefix/datafile",
"size": 80,
"eTag": "b10063d01db20998584a425f0fa77a29",
"sequencer": "005C578EAF156E8A91"
}
}
}]
}
S3 事件通知不是将实际数据发送到 SQS 吗?我错过了什么吗?
是的,这是正确的 SQS 将仅获取 created/modified 或基于通知事件的 S3 对象的元数据。无论您选择哪种目的地类型,所有目的地的 S3 通知结构都是相同的。 S3 对象可以是任何音频、视频或一些巨大的 JSON 文件。 SQS 有它的 limits,它不能总是接收实际的 S3 对象。