問題の説明
Authorization
リクエストヘッダーのSignature
フィールドは空のままです。
発生原因
V2署名を使用するリクエストを初期化しました。 ただし、Authorization
リクエストヘッダーのSignature
フィールドは空のままです。
例
V2署名を使用するリクエストを開始しました。 ただし、Authorization
リクエストヘッダーは無効です。
GET /oss.jpg HTTP/1.1
ホスト: oss-example.oss-cn-hangzhou.aliyuncs.com
日付: 火曜日、12月20日2022 08:48:18 GMT
承認: OSS2 AccessKeyId:44 **07、AdditionalHeaders:host、Signature:
Authorization
リクエストヘッダーの署名バージョンと署名情報を区切るには、スペースを使用する必要があります。 次のルールが適用されます。
署名バージョン:
OSS2
のみがサポートされています。署名情報: 署名情報をキーと値のペアの形式で指定します。 キーと値のペアはコンマ (,) で区切ります。 各キーと値のペアは、キー: 値の形式です。
署名情報のキーには、
AccessKeyId
とsignature
必須フィールド、およびAdditionalHeaders
オプションフィールドが含まれます。 この例では、上記のフィールドはAuthorizationリクエストヘッダーのキーとして使用されますが、Signature
フィールドは空のままです。
ソリューション
V2署名を使用するリクエストのAuthorization
ヘッダーの形式が上記の規則に準拠していることを確認します。 サンプルコード:
GET /oss.jpg HTTP/1.1
ホスト: oss-example.oss-cn-hangzhou.aliyuncs.com
日付: 火曜日、12月20日2022 08:48:18 GMT
承認: OSS2 AccessKeyId:44 **07、AdditionalHeaders:host、Signature:n7I** I0=
参考資料
Alibaba Cloud SDKを使用してV2署名を使用するリクエストを開始する場合は、「概要」をご参照ください。
自己署名モードを使用します。
V2署名を計算する場合は、「OSS SDK for Pythonを使用してV2署名を計算する」をご参照ください。
署名ロジックを指定する場合は、「概要」をご参照ください。
サーバーが
StringToSign
パラメーターを含む応答を返した場合、サーバーのStringToSignパラメーターの値が計算前の文字列と同じかどうかを確認できます。