我有一个用例,我想为给定的对象密钥生成s3 pre签名的URL,但如果添加了一些随机请求参数,则希望URL工作。是否有一种方法可以使用AWS Java SDK或SDK中的其他类别的GeneratePresignEdurlrequest?
?示例
如果我的预签名的URL是http://test.s3.amazonaws.com/sdfasdlkfjsd,我请求http://test.s3.amazonaws.com/sdfasdlkfjsd?random = random = 100& amazonaws.com/sdfasdlkfjsd?希望能够下载该内容忽略随机请求参数。目前,我得到了这个
<Error>
<Code>SignatureDoesNotMatch</Code>
<Message>
The request signature we calculated does not match the signature you provided. Check your key and signing method.
</Message>
....
</Error>
预先签名的URL被设计为篡改。任何改变URL元素的修改都使签名无效。那是设计的,与Java SDK中的任何限制无关。
您当然可以在签署URL之前添加自定义值。S3访问日志文档建议以x-
开头,而V4签名算法肯定支持它,但是尚不清楚如何使用Java SDK执行此操作。使用JavaScript SDK,有一个简单的黑客涉及事件挂钩。
交替地将云方面放在水桶前。 CloudFront使用自定义策略的预先签名的URL支持Resource
字段中的通配符,这是指定完整URL的字段,在自定义策略中。