预先指定的URL不适用于PUT,但适用于GET S3

时间:2017-06-22 20:35:07

标签: amazon-s3 aws-cli

我在使用Amazon S3预先签名的网址时遇到了问题。在我的存储桶策略配置中,我只能访问特定的IAM用户,我的意思是,不是公开的。因此,如果我在浏览器中导航到我的S3存储桶的文件URL,我会收到拒绝访问的消息。 所以,我使用aws-cli工具生成该文件的预签名URL。使用该URL我能够正确获取文件,但问题是当我尝试将文件放入存储桶时。使用该URL我无法放入文件因为我收到此消息错误:

<Code>SignatureDoesNotMatch</Code> <Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message>

我缺少什么?

1 个答案:

答案 0 :(得分:1)

您需要PUT方法和GET方法的不同预签名网址。这是因为HTTP动词(PUTGET等)是&#34; CanonicalResource&#34;的一部分。用于构建签名。有关详细信息,请参阅"Authenticating Requests" in the Amazon S3 reference docs