相关疑难解决方法(0)

从Lambda中的S3通知事件中获取非ASCII文件名

keyAWS S3通知事件中表示文件名的字段是URL转义的.

当文件名包含空格或非ASCII字符时,这很明显.

例如,我已将以下文件名上传到S3:

my file ??????.txt
Run Code Online (Sandbox Code Playgroud)

通知收到:

{ 
  "Records": [
    "s3": {
        "object": {
            "key": u"my+file+%C5%99%C4%9B%C4%85%CE%BB%CE%BB%CF%85.txt"
        }
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我试过解码使用:

key = urllib.unquote_plus(event['Records'][0]['s3']['object']['key']).decode('utf-8')
Run Code Online (Sandbox Code Playgroud)

但是产量:

my file ÅÄÄλλÏ.txt
Run Code Online (Sandbox Code Playgroud)

当然,当我尝试使用Boto从S3获取文件时,我收到404错误.

utf-8 amazon-s3 python-2.7 python-unicode aws-lambda

5
推荐指数
2
解决办法
2468
查看次数