我正在获得一个" SignatureDoesNotMatch"当密钥名称中有空格时,AWS中的项目的预先签名的URL会发生403错误。当然,关键名称中的空格是个坏主意。
在请求getSignedUrl时,我尝试用加号替换空格,我尝试用%20替换空格,我尝试了各种编码方案都无济于事。
key = "SOMEBUCKET/my file with a space.jpg";
key = key.replace(/ /g,"%20");
params.Key = key
s3Client.getSignedUrl('getObject', params, function(err, url) { }
我得到的是错误文档:
<Code>SignatureDoesNotMatch</Code>
<Message>
The request signature we calculated does not match the signature you
provided. Check your key and signing method.
</Message>...
如何对此进行编码以便我可以在密钥中使用带空格的S3.getSignedUrl()?感谢StackOverflow世界的帮助。