只需要在Mail中更新S3更新密钥对象:SNS主题是发送整个Json

问题描述 投票:0回答:1

如何从SNS主题订阅邮件中仅获取更新的S3 Key对象数据

{
  "Records": [
    {
      "eventVersion": "2.0",
      "eventSource": "aws:s3",
      "awsRegion": "us-east-1",
      "eventTime": "2018-01-27T01:24:43.660Z",
      "eventName": "ObjectCreated:Put",
      "userIdentity": {
        "principalId": "AWS:AIDAJNQE6"
      },
      "requestParameters": {
        "sourceIPAddress": "98.210.xxx.xxx"
      },
      "responseElements": {
        "x-amz-request-id": "D464A8CB49C8D082",
        "x-amz-id-2": "8g8K1G6b5sSUaxdZyshgxpk2wZR9hUSmj="
      },
      "s3": {
        "s3SchemaVersion": "1.0",
        "configurationId": "Radhikas3update",
        "bucket": {
          "name": "Radhika-test",
          "ownerIdentity": {
            "principalId": "AG737Y2"
          },
          "arn": "arn:aws:s3:::radhika-test"
        },
        "object": {
          "key": "test.txt",
          "size": 14,
          "eTag": "12b9d85febf",
          "sequencer": "005A6B"
        }
      }
    }
  ]
}

如何从SNS主题订阅邮件中仅获取更新的S3 Key对象数据

         ********Expecting Output*****************


    "object": {
          "key": "test.txt",
          "size": 14,
          "eTag": "12b9d85febf",
          "sequencer": "005A6B"
             }

请帮助获取邮件中的关键值

amazon-web-services amazon-s3 amazon-sns
1个回答
0
投票

S3中没有真正的“目录”,因为S3是一个对象存储,每个对象都有一个密钥。 S3存储桶基本上是一组键值对。

通常使用稍微“命名空间”的键,以允许它们看起来像目录。 AWS控制台通过分解这些命名空间组件的键来给出目录文件系统的印象。

例如,我可能有这样的密钥:com/stackoverflow/nicholas.hauschild/secrets.txt,AWS控制台会给人的印象是secrets.txt目录中有一个名为com/stackoverflow/nicholas.hauschild/的'文件'。

在您的示例中,我看不到目录,因为关键是test.txt

如果您在示例json中使用我的示例'namespaced'键,它将如下所示:

    ...
    "object": {
      "key": "com/stackoverflow/nicholas.hauschild/secrets.txt",
      "size": 99999999999999,
      "eTag": "12345",
      "sequencer": "67890"
    }
    ...

此时您将看到您只需要查看JSON中的key并从其中处理'目录'的值。

© www.soinside.com 2019 - 2024. All rights reserved.