根据此处所述的v2过程手动签名时,我收到带有意外StringToSign(隐含的内容)的SignatureDoesNotMatch错误:http://docs.aws.amazon.com/general/latest/gr/signature-version-2.html
StringToSign显示一个没有查询的StringToSign,并且在我编写的规范请求字符串中,主机名是一个数字,而不是s3.amazonaws.com
。
为什么会发生这种情况?我看到错误上方的网址请求完全不同。
答案 0 :(得分:0)
S3不会对要签名的字符串使用相同的规则。
StringToSign = HTTP-VERB + "\n" +
Content-MD5 + "\n" +
Content-Type + "\n" +
Expires + "\n" +
CanonicalizedAmzHeaders +
CanonicalizedResource;
您看到的号码不是主机名,而是过期时间。 Content-MD5和Content-Type是GET
个请求的空字符串。 (\n
仍然存在。对XML错误执行“查看源代码” - 您的浏览器可能隐藏了空白行。)
http://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html