使用预先签名的URL访问文件

时间:2015-05-27 12:07:19

标签: web-services amazon-web-services amazon-s3 mule

我正在向Amazon S3中的存储桶添加一个对象。添加成功,现在我想通过预先签名的URL使其他人可以访问该文件。

预先签名的网址格式如下: https://<bucket>.s3.amazonaws.com/<key>?AWSAccessKeyId=<access key>&Expires=1432722343&Signature=mmfv%2Fddhhakla1csUrb%2FtRCXYu8%3D

但是当我尝试加载网址时,它会返回错误:

    <Error>
<Code>SignatureDoesNotMatch</Code>
<Message>
         The request signature we calculated does not match the signature you provided. Check your key and signing method.
</Message>
<AWSAccessKeyId></AWSAccessKeyId>
<StringToSign>
      GET 1432727995 /<bucket>/<key>
</StringToSign>
<SignatureProvided>mmfv/ddhhakla1csUrb/tRCXYu8=</SignatureProvided>
<StringToSignBytes>
     47 45 54 0a 0a 0a 31 34 33 32 37 32 37 39 39 35 0a 2f 72 69 2d 73 65 72 76 69 63 65 2d 74 72 61 6b 2d 74 65 73 74 2f 74 65 73 74 53 75 6e 69 74 31 2e 78 6d 6c
</StringToSignBytes>
<RequestId>0E72b9858758353A0D906</RequestId>
<HostId>
    SOME VALUE
</HostId>
</Error>

另一个问题: 如果我有一个带有“+”的URI,我如何使用URI访问该页面,因为在Web浏览器中尝试将URI转换为空格(“”)并且这是不正确的?

0 个答案:

没有答案