Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在s3.getSignedUrl()参数中编码空格_Javascript_Amazon Web Services_Amazon S3_Aws Sdk - Fatal编程技术网

Javascript 在s3.getSignedUrl()参数中编码空格

Javascript 在s3.getSignedUrl()参数中编码空格,javascript,amazon-web-services,amazon-s3,aws-sdk,Javascript,Amazon Web Services,Amazon S3,Aws Sdk,当密钥名中有空格时,我从AWS收到一个“SignatureDesNotMatch”403错误,该错误来自S3中项目的预签名URL。当然,键名中的空格是个坏主意 请求getSignedUrl时,我尝试用加号替换空格,尝试用%20替换空格,尝试了各种编码方案,但都没有用 key = "SOMEBUCKET/my file with a space.jpg"; key = key.replace(/ /g,"%20"); params.Key = key s3Client.getSignedUrl('

当密钥名中有空格时,我从AWS收到一个“SignatureDesNotMatch”403错误,该错误来自S3中项目的预签名URL。当然,键名中的空格是个坏主意

请求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()和键中的空格?谢谢你的帮助

S3做了一些与键中的空格相关的奇怪事情,但是SDK应该能够正确处理它。您是否可以在根本不转义的情况下传递密钥,并向我们显示来自S3的完整错误消息?如果我在params.key对象中传递未编码的密钥,则密钥中的空格将自动被URLCoded到%20。各种编码都会出现错误消息。示例:获取1495488453/petedmpreview/breaked filez/image++with+a+space.jpgSo,无论我使用%20、a加号还是%2b作为url编码的加号,s3.getSignedUrl方法都不会返回工作url。找到解决方案了吗@彼得:你找到解决办法了吗@彼得弗里德曼