S3:使用" @"下载文件(在符号处)(在符号处)文件名中

时间:2018-03-15 18:14:55

标签: amazon-s3 urlencode

我有一堆文件" @"签到他们。我已将它们上传到S3,我希望将它们提供给我的移动客户端。但是,因为AWS会对“' @'签名,该文件的路径不再是我最初上传的。

例如:

我上传了: <...>/mybuckt-static/brand_img/ios/giftCard@2x.png

但现在的下载路径是: <...>/mybucket-static/brand_img/ios/giftCard%402x.png

如此。是否可以继续使用原始文件名(不首先转义它?)

1 个答案:

答案 0 :(得分:0)

所以,是的,有一个解决方案。详情请见https://medium.com/in-the-weeds/handling-url-encoded-s3-file-names-6fa54ea35f55

但关键在于:将文件中的内容处置元数据设置为原始文件名,然后全部设置。这里有一些基于cli的代码(并公开文件):

aws s3 ls s3://mybucket/brand_img/ios/|awk {'print $4'} > objects.txt

while read line; do aws s3api copy-object --bucket mybucket  \
--copy-source /mybucket/brand_img/ios/$line --key brand_img/ios/$line \
--metadata-directive REPLACE --metadata Content-Disposition=$line --acl public-read; done < objects.txt