问题描述
请求头X-Amz-Content-SHA256
参数取值不正确。
问题原因
您发起了Amazon S3兼容的V4版本请求,但是请求头中X-Amz-Content-SHA256
参数取值不正确。
问题示例
您发起了AWS S3兼容的V4版本签名请求,但是X-Amz-Content-SHA256
参数取值有误。
GET /test.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AK***/20221220/us-east-1/s3/aws4_request&X-Amz-Date=20221220T084818Z&X-Amz-Expires=86400&X-Amz-SignedHeaders=host&X-Amz-Signature=ab2***st HTTP/1.0
Date: Tue, 20 Dec 2022 08:48:18 GMT
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
X-Amz-Content-SHA256: ab***123
x-oss-s3-compat: true
当请求的HTTP方法不是POST或者PUT时(例如,以上示例中请求的HTTP方法为GET),
X-Amz-Content-SHA256
字段取值为空字符串的SHA256值
或者UNSIGNED-PAYLOAD
。当请求的HTTP方法是POST或者PUT时,
X-Amz-Content-SHA256
字段取值为上传内容的SHA256值
。
解决方案
将X-Amz-Content-SHA256
字段取值替换为UNSIGNED-PAYLOAD
,并确保URL请求中各参数完整且填写正确。正确示例如下:
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&X-Amz-Signature=ab2s**** HTTP/1.0
Date: Tue, 20 Dec 2022 08:48:18 GMT
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
X-Amz-Content-SHA256: UNSIGNED-PAYLOAD
x-oss-s3-compat: true
推荐使用Amazon S3 SDK发起请求。更多信息,请参见使用Amazon S3 SDK访问OSS。
文档内容是否对您有帮助?