Problem description
The Signature field in the Authorization request header is missing.
Causes
You initialized a request that uses a V2 signature. However, the Signature field in the Authorization request header is missing.
Examples
You initiated a request that uses a V2 signature. However, the format of the Authorization request header is invalid.
GET /oss.jpg HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Date: Tue, 20 Dec 2022 08:48:18 GMT
Authorization: OSS2 AccessKeyId:44**07,AdditionalHeaders:hostYou must use a space to separate the signature version and the signature information in the Authorization request header. The following rules apply:
Signature version: Only
OSS2is supported.Signature information: Specify the signature information in the format of key-value pairs. Separate key-value pairs with commas (,). Each key-value pair is in the key:value format.
The keys of the signature information include the
AccessKeyIdandSignaturerequired fields and theAdditionalHeadersoptional field. In the preceding example, the requiredSignaturefield is missing.
Solutions
Make sure that the format of the Authorization header in the request that uses a V2 signature conforms to the preceding rules. Sample code:
GET /oss.jpg HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Date: Tue, 20 Dec 2022 08:48:18 GMT
Authorization: OSS2 AccessKeyId:44**07,AdditionalHeaders:host,Signature:n7I**I0=References
If you want to use Alibaba Cloud SDKs to initiate a request that uses a V2 signature, see Overview.
Use the self-signed mode.
If you want to calculate the V2 signature, see Calculate V2 signature by using OSS SDK for Python.
If you want to specify the signature logic, see Overview.
If the server returns a response that contains the
StringToSignparameter, you can check whether the value of the StringToSign parameter on the server is the same as the string before calculation.