Amazon web services AWS S3自动对象键名称规范化为小写

Amazon web services AWS S3自动对象键名称规范化为小写,amazon-web-services,amazon-s3,aws-lambda,Amazon Web Services,Amazon S3,Aws Lambda,另外,AWS S3上的对象名称总是区分大小写的,不可能将AWS S3配置为不区分大小写 那么,是否可以配置类似AWS Lambda的东西,以便将上传的文件名规范化为小写?或者,使用AWS S3执行此任务的最佳实践是什么?是的,通过使用Lambda函数订阅S3 PUT事件,可以轻松完成此任务 { "Records": [ { "eventVersion": "2.0", "eventTime": "1970-01-01T00:00:00.000Z",

另外,AWS S3上的对象名称总是区分大小写的,不可能将AWS S3配置为不区分大小写


那么,是否可以配置类似AWS Lambda的东西,以便将上传的文件名规范化为小写?或者,使用AWS S3执行此任务的最佳实践是什么?

是的,通过使用Lambda函数订阅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"
    }
  ]
}
然后,您可以获取event.Records[0].s3.bucket.name和event.Records[0].s3.object.key以向AWS发出请求

成功复制文件后,您可以复制原始文件


只需确保您的Lambda仅配置为PUT事件,因为如果您将其设置为ALL events,则复制和删除也将触发您的函数,使您进入无限递归。

您可以编写重命名Lambda,以便在每次上载新文件时触发。感谢@Wai Ha Lee删除“希望这有帮助”判决。我不知道这是不允许的/被广泛接受的。对不起-我应该留下更多的评论,而不是做一个驾车编辑。是的,问候语和类似“希望有帮助”之类的东西。所以最好不要包括它们。