0002-00000076

问题描述

URL签名中x-oss-additional-headers字段取值为空。

问题原因

您采用URL签名的方式发送请求,但是在URL参数中x-oss-additional-headers字段取值为空。

问题示例

您发起了在URL参数中携带签名的请求,但是x-oss-additional-headers字段取值为空。

GET /test.txt?x-oss-signature-version=OSS2&x-oss-additional-headers=&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发起请求概述