AWS S3通知事件中的key
字段表示文件名,因此需要进行URL转义。
当文件名包含空格或非ASCII字符时,这一点就很明显了。
例如,我已将以下文件名上传到S3:
my file řěąλλυ.txt
收到的通知如下:
{
"Records": [
"s3": {
"object": {
"key": u"my+file+%C5%99%C4%9B%C4%85%CE%BB%CE%BB%CF%85.txt"
}
}
]
}
我尝试使用以下方法进行解码:
key = urllib.unquote_plus(event['Records'][0]['s3']['object']['key']).decode('utf-8')
但是这会产生以下结果:
my file ÅÄÄλλÏ.txt
当我试图使用Boto从S3获取文件时,我遇到了404错误。