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错误.