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: trueThe 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: trueThe 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.