问题描述
URL签名中通过x-oss-additional-headers
字段指定的请求头部中存在一个或多个空的头部字段。
问题原因
您采用URL签名的方式发送请求,但是在URL参数中通过x-oss-additional-headers
指定的请求头部中存在空的头部字段。
问题示例
您发起了在URL参数中携带签名的请求,但是x-oss-additional-headers
指定的请求头部中 ;host
字段列表存在一个或多个空的头部字段。
GET /test.txt?x-oss-signature-version=OSS2&x-oss-additional-headers= ;host&x-oss-access-key-id=44CF9***&x-oss-expires=1475462111&x-oss-signature=abc*** HTTP/1.0
Date: Tue, 20 Dec 2022 08:48:18 GMT
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Range: bytes=100-900
解决方案
x-oss-additional-headers
为可选字段,如果不需要将额外的请求头加入签名的计算过程,可直接删除该字段。如果确认需要将额外的请求头加入签名的计算过程,需要加入
x-oss-additional-headers
字段,并确保该字段取值正确。该字段构建方法说明如下:额外头部中的所有header均要求小写。
按照字典序升序排列额外头部中的所有header。
以分号连接数组中的元素,获取字符串。
例如,您需要将以上示例中的Host以及Range这两个Header加入签名的计算过程,结合以上构建方法说明,则
x-oss-additional-headers
字段取值需填写为host;range
。
说明
推荐采用SDK的方式发起请求,可以免去手动签名的过程。更多信息,请参见使用阿里云SDK发起请求概述。
文档内容是否对您有帮助?