如果我有一个文件名
a'd1 & "[tttt]" + 'sq.jpg
当它上传到 Amazon 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 需要的所有规则?使用 (encodeURI 甚至encodeURIComponent) 的正常 javascript 编码将不起作用
这不是来自明确的来源,但它满足了我的要求:编码S3URI https://github.com/GeorgePhillips/node-s3-url-encode/blob/master/index.js
它替换以下字符+!"#$&'()*+,:;=?@
S3 将文件路径中的空格替换为+
,所以最好在任何进一步的字符串替换之前进行 URI 编码
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)