问题描述
请求中签名信息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=&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
。
解决方案
基于V4签名的请求URL中包括4个必选参数(x-oss-signature-verion
,x-oss-credential
,x-oss-expires
和x-oss-signature
)以及1个可选参数(x-oss-additional-headers
)。正确填写示例如下:
GET /oss.jpg?x-oss-signature-verion=OSS4-HMAC-SHA256&x-oss-credential=LTAI5t7h6SgiLSganP2m****/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
字符串,可以查看服务端的待签字符串与您签名前的待签字符串是否一致。
文档内容是否对您有帮助?