1. 问题描述:
将签名包含到url中进行数据下载,调试过程中发现 StringToSign 和预期的不一致。
url如下:
发帖为达到5,不能发链接:oss-cn-shanghai.aliyuncs.com/testossbucket/088A06F8BB8A48A2B129890394A2E444/C0102A7058F24FC39C6B610B404BCEA6?response-content-disposition=attachment; filename=\"5.txt\"; filename*=utf-8''5.txt&OSSAccessKeyId=PBPcrnZw0qj0BJTQ&Expires=1442474863&Signature=upJSdqMJrCUTnQbQ3mJcHPm%2fNQU%3d
我认为StringToSign应该是这样的:
GET
1442474863
/testossbucket/088A06F8BB8A48A2B129890394A2E444/C0102A7058F24FC39C6B610B404BCEA6?response-content-disposition=attachment; filename="5.txt"; filename*=utf-8''5.txt
但是验证错误,OSS服务端提示期望的StringToSign为:
GET
1442474863
/testossbucket/088A06F8BB8A48A2B129890394A2E444/C0102A7058F24FC39C6B610B404BCEA6?response-content-disposition
即没有response-content-disposition这个属性值的value部分的校验。
2. 疑问:
按照oss_api-reference.pdf,对于?后面要重写(override)返回请求的header时,是会检查key-value的,文档上的例子:
/BucketName/ObjectName?acl&response-content-type=ContentType & uploadId =UploadId
而事实上,OSS服务端只检查了key(response-content-disposition)
按照OSS服务端的提示,我计算signature时只校验key,就通过验证了。
之前做过S3存储同样请求的测试,是校验了response-content-disposition=attachment; filename="5.txt"; filename*=utf-8''5.txt
请问,这个是文档上已经有说明(只校验key,但是我可能没注意到),还是现在实现上的问题?以后会和S3类似,还是不会再更改呢?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。