使用python和shell访问(使用put)已经sign过的OSS URL(时间1年,并未过期),使用两种访问方式:
import curlify
import requests
data = 'some data str...'
url = 'http://bkmk.oss-ap-northeast-1.aliyuncs.com/71379ec0-7868-11ed-b9fa-55cace6d1414?OSSAccessKeyId=LTAI5tPynodLHeacT1J5SmWh&Expires=1702198548&Signature=MKHdVH4JMFq9QCL4ZU6yftwUaXc%3D'
rep = requests.put(url, data=data)
print(rep.content)
ret1 = curlify.to_curl(rep.request)
print(ret1)
p = os.system(ret1)
获得的日志如下:
(flask) sy@mofs:/mnt/data2/sy/Desktop/sense/bakamaka-old/tests$ python test.py
b''
curl -X PUT -H 'Accept: */*' -H 'Accept-Encoding: gzip, deflate' -H 'Connection: keep-alive' -H 'Content-Length: 16' -H 'User-Agent: python-requests/2.25.0' -d 'some data str...' 'http://bkmk.oss-ap-northeast-1.aliyuncs.com/71379ec0-7868-11ed-b9fa-55cace6d1414?OSSAccessKeyId=LTAI5tPynodLHeacT1J5SmWh&Expires=1702198548&Signature=MKHdVH4JMFq9QCL4ZU6yftwUaXc%3D'
<?xml version="1.0" encoding="UTF-8"?>
<Error>
<Code>SignatureDoesNotMatch</Code>
<Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message>
<RequestId>63944A2113AFD031301E17C1</RequestId>
<HostId>bkmk.oss-ap-northeast-1.aliyuncs.com</HostId>
<OSSAccessKeyId>LTAI5tPynodLHeacT1J5SmWh</OSSAccessKeyId>
<SignatureProvided>MKHdVH4JMFq9QCL4ZU6yftwUaXc=</SignatureProvided>
<StringToSign>PUT
application/x-www-form-urlencoded
1702198548
/bkmk/71379ec0-7868-11ed-b9fa-55cace6d1414</StringToSign>
<StringToSignBytes>50 55 54 0A 0A 61 70 70 6C 69 63 61 74 69 6F 6E 2F 78 2D 77 77 77 2D 66 6F 72 6D 2D 75 72 6C 65 6E 63 6F 64 65 64 0A 31 37 30 32 31 39 38 35 34 38 0A 2F 62 6B 6D 6B 2F 37 31 33 37 39 65 63 30 2D 37 38 36 38 2D 31 31 65 64 2D 62 39 66 61 2D 35 35 63 61 63 65 36 64 31 34 31 34 </StringToSignBytes>
</Error>
None
同时也尝试了postman和$.ajax使用put请求,发现都会返回403 SignatureDoesNotMatch
curl, postman, $ajax访问都不会报错403
你好,你的签名URL访问会报403错误SignatureDoesNotMatch,请按照以下步骤排查签名方式并重新生成签名URL:
更多信息,请参见OSS权限相关常见错误的排查方法。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
对象存储 OSS 是一款安全、稳定、高性价比、高性能的云存储服务,可以帮助各行业的客户在互联网应用、大数据分析、机器学习、数据归档等各种使用场景存储任意数量的数据,以及进行任意位置的访问,同时通过丰富的数据处理能力更便捷地使用数据。