我在使用Amazon S3预先签名的URL时遇到了麻烦 . 在我的存储桶策略配置中,我只能访问特定的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 回答
您需要为
PUT
方法和GET
方法使用不同的预签名URL . 这是因为HTTP动词(PUT
,GET
等)是用于构造签名的"CanonicalResource"的一部分 . 有关详细信息,请参阅"Authenticating Requests" in the Amazon S3 reference docs .