2014-01-11 62 views
4

如果我是Amazon S3的URL编码

a'd1 & "[tttt]" + 'sq.jpg

当这个被上传到Amazon S3文件名,它就会被转换成该

a'd1 & %22[tttt]%22 + 'sq.jpg

所以双引号被URL编码并且文件名本身被改变。

文件具有使用网址编码,才能获取

a%27d1+%26+%2522%5Btttt%5D%2522+%2B+%27sq.jpg 所以编码规则似乎是:

": %2522 (double encoded) 
Space: + 
&: %26 
[: %5B 
]: %5D 
+: %2B 

有没有一种方法来确定所有S3需要规则?用(是encodeURI甚至encodeURIComponent方法)普通的JavaScript编码将无法正常工作

+0

>“当这个被上传到Amazon S3,它就会转变成这种” _How_做哟你上传它?您使用的工具中可能存在错误。 –

回答

1

这不是从一个明确的来源,但它已经为我的要求:encodeS3URI

它取代了以下字符+!"#$&'()*+,:;[email protected]

S3替换文件路径的空间与+,所以最好在任何进一步的字符串替换之前做的URI编码