问题描述
请求中签名信息x-oss-credential
字段取值不正确。
问题原因
您发起了基于V4版本签名的请求,但是请求参数中x-oss-credential
字段取值不正确。
问题示例
您在请求URL中携带了基于V4版本签名的签名信息,但是请求参数中x-oss-credential
字段取值不正确。
GET /oss.jpg?x-oss-signature-verion=OSS4-HMAC-SHA256&x-oss-credential=AK**ID/2022-12-20/cn-hangzhou/oss/abc&x-oss-expires=1141889120&x-oss-additional-headers=host&x-oss-signature=8u**a3 HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Date: Tue, 20 Dec 2022 08:48:18 GMT
请求参数中的x-oss-credential
是必选字段,用于指定签名信息。格式为<AccessKeyId>/<SignDate>/<Region>/oss/aliyun_v4_request
。以上示例中x-oss-credential
取值以/abc
结尾,/abc
为不合法字符。
解决方案
将x-oss-credential
取值末尾的/abc
替换为/aliyun_v4_request
。正确填写示例为:
GET /oss.jpg?x-oss-signature-verion=OSS4-HMAC-SHA256&x-oss-credential=LTAI********/20221220/cn-hangzhou/oss/aliyun_v4_request&x-oss-expires=1141889120&x-oss-additional-headers=host&x-oss-signature=8u**a3 HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Date: Tue, 20 Dec 2022 08:48:18 GMT
相关文档
使用SDK发起请求实现V4版本签名。更多信息,请参见使用阿里云SDK发起请求概述。
自己实现签名。
如果您需要自己实现V4版本签名,可参考SDK V4版本签名。更多信息,请参见Python SDK V4版本签名实现。
如果您需要自己实现签名逻辑,可参考V1版本签名。更多信息,请参见使用REST API发起请求。
采用以上方法自己实现签名过程中,如果服务端在响应中返回了
StringToSign
字符串,可以查看服务端的待签字符串与您签名前的待签字符串是否一致。
该文章对您有帮助吗?