0002-00000406

更新时间:
复制 MD 格式

Problem description

The Authorization header fields are missing the required comma separators.

Causes

When using the Amazon S3-compatible API with Signature Version 4, the Authorization header must contain three fields — Credential, SignedHeaders, and Signature — separated by commas (,). If the commas are missing, OSS cannot parse the header and rejects the request.

Examples

The following request uses the Amazon S3-compatible V4 signature. The Authorization header has invalid formatting because the three fields are not separated by commas.

GET /test.txt HTTP/1.0
Date: Tue, 20 Dec 2022 08:48:18 GMT
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Authorization:AWS4-HMAC-SHA256 Credential=LTAI****************/20221220/us-east-1/s3/aws4_requestSignedHeaders=host;x-amz-content-sha256;x-amz-dateSignature=ab2s********************
x-amz-content-sha256: abc***
x-amz-date: 20221220T084818Z
x-oss-s3-compat: true

The Credential, SignedHeaders, and Signature values run together without commas, so OSS cannot identify the field boundaries.

Solutions

Add commas between the three fields in the Authorization header:

GET /test.txt HTTP/1.0
Date: Tue, 20 Dec 2022 08:48:18 GMT
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Authorization:AWS4-HMAC-SHA256 Credential=LTAI****************/20221220/us-east-1/s3/aws4_request,SignedHeaders=host;x-amz-content-sha256;x-amz-date,Signature=ab2s********************
x-amz-content-sha256: abc****
x-amz-date: 20221220T084818Z
x-oss-s3-compat: true

The correct Authorization header format is:

Authorization:AWS4-HMAC-SHA256 Credential=<value>,SignedHeaders=<value>,Signature=<value>

To avoid constructing the Authorization header manually, use an Amazon S3 SDK — the SDK handles signature generation automatically. For setup instructions, see Use Amazon S3 SDKs to access OSS.