如果我有一个文件名为
a'd1 & "[tttt]" + 'sq.jpg
当上传到亚马逊S3时,它会被转换成
a'd1 & %22[tttt]%22 + 'sq.jpg
因此双引号被URL编码,文件名本身也被更改。
必须使用编码后的URL获取文件。
所以编码规则似乎是:
a%27d1+%26+%2522%5Btttt%5D%2522+%2B+%27sq.jpg
a'd1 & "[tttt]" + 'sq.jpg
当上传到亚马逊S3时,它会被转换成
a'd1 & %22[tttt]%22 + 'sq.jpg
因此双引号被URL编码,文件名本身也被更改。
必须使用编码后的URL获取文件。
所以编码规则似乎是:
a%27d1+%26+%2522%5Btttt%5D%2522+%2B+%27sq.jpg
": %2522 (double encoded)
Space: +
&: %26
[: %5B
]: %5D
+: %2B
有没有办法确定S3需要的所有规则?正常的javascript编码(使用encodeURI或甚至encodeURIComponent)不起作用。
encodeURIComponent
不起作用?就我所看到的,它与你描述的唯一区别是encodeURIComponent
将空格编码为%20。然而,%20在s3中也可以使用,所以我不认为使用它会有任何问题。 - Andy