0002-00000426

问题描述

用于签名的额外请求头参数取值为空。

问题原因

您发起了Amazon S3兼容的V4版本请求,但是请求参数X-Amz-SignedHeaders取值为空或Authorization请求头的SignedHeaders字段为空。

问题示例

您发起了在URL请求参数中携带签名的请求,但是X-Amz-SignedHeaders参数取值为空。

GET /test.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=LTAI********/20221220/us-east-1/s3/aws4_request&X-Amz-Date=20221220T084818Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=&X-Amz-Signature=ab2**** HTTP/1.0
Date: Tue, 20 Dec 2022 08:48:18 GMT
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
x-oss-s3-compat: true

X-Amz-SignedHeaders参数用于指定待加入签名的请求头,结构为通过分号连接的请求头列表,且列表中至少包含host

解决方案

正确填写X-Amz-SignedHeaders参数或Authorization请求头的SignedHeaders字段。正确示例如下:

GET /test.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=LTAI********/20221220/us-east-1/s3/aws4_request&X-Amz-Date=20221220T084818Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host;range&X-Amz-Signature=ab2s**** HTTP/1.0
Date: Tue, 20 Dec 2022 08:48:18 GMT
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Range: bytes=100-900

推荐使用Amazon S3 SDK发起请求。更多信息,请参见使用Amazon S3 SDK访问OSS