Автоматическая нормализация имени ключа объекта AWS S3 в нижний регистр - PullRequest
0 голосов
/ 28 февраля 2019

AFAIK, имена объектов в AWS S3 всегда чувствительны к регистру, и невозможно настроить AWS S3, чтобы быть нечувствительным к регистру.

Итак, можно ли настроить что-то вроде AWS Lambda для нормализации загруженного файлаимена в нижнем регистре?Или как лучше всего выполнять эту задачу с AWS S3?

1 Ответ

0 голосов
/ 28 февраля 2019

Да, это легко сделать, подписав лямбда-функцию на ваше событие S3 PUT.

{
  "Records": [
    {
      "eventVersion": "2.0",
      "eventTime": "1970-01-01T00:00:00.000Z",
      "requestParameters": {
        "sourceIPAddress": "127.0.0.1"
      },
      "s3": {
        "configurationId": "testConfigRule",
        "object": {
          "eTag": "0123456789abcdef0123456789abcdef",
          "sequencer": "0A1B2C3D4E5F678901",
          "key": "HappyFace.jpg",
          "size": 1024
        },
        "bucket": {
          "arn": bucketarn,
          "name": "sourcebucket",
          "ownerIdentity": {
            "principalId": "EXAMPLE"
          }
        },
        "s3SchemaVersion": "1.0"
      },
      "responseElements": {
        "x-amz-id-2": "EXAMPLE123/5678abcdefghijklambdaisawesome/mnopqrstuvwxyzABCDEFGH",
        "x-amz-request-id": "EXAMPLE123456789"
      },
      "awsRegion": "us-east-1",
      "eventName": "ObjectCreated:Put",
      "userIdentity": {
        "principalId": "EXAMPLE"
      },
      "eventSource": "aws:s3"
    }
  ]
}

Затем вы можете получить события.Records [0] .s3.bucket.name и event.Records [0] .s3.object.key, чтобы сделать запрос copyObject дляAWS

Как только ваш файл был успешно скопирован, вы можете удалить исходный файл.

Просто убедитесь, что ваша Lambda настроена только на события PUT, потому что если выустановите для него ВСЕ события, и COPY, и DELETE также активируют вашу функцию, заставляя вас входить в бесконечную рекурсию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...