全部產品
Search
文件中心

Object Storage Service:0002-00000307

更新時間:Jun 19, 2024

問題描述

請求籤名不匹配。

問題原因

您發起的請求採用Amazon S3相容的V2版本簽名,但是請求中提供的簽名與OSS計算的簽名不匹配。

問題樣本

您發起了基於Amazon S3相容的V2版本簽名的請求,但是簽名計算不正確。

GET /test.txt?AWSAccessKeyId=nz2p****&Expires=1141889120&Signature=WrongSignature HTTP/1.0
Date: Tue, 20 Dec 2022 08:48:18 GMT
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
x-oss-s3-compat: true

解決方案

  • 推薦採用SDK發起請求,可以免去手動簽名的過程。具體操作,請使用阿里雲SDK發起請求概述

    使用SDK發起請求後,如果報錯簽名不匹配,請按以下步驟進行排查。

    1. 確認Endpoint格式是否填寫正確。

      以華東1(杭州)地區為例,正確的Endpoint格式為http://oss-cn-hangzhou.aliyuncs.com。關於其他地區對應的Endpoint填寫方法,請參見訪問網域名稱和資料中心

    2. 確認AccessKey ID與AccessKey Secret是否填寫正確。

      AccessKey ID與AccessKey Secret前後不能存在空格。

    3. 確認BucketName與ObjectKey符合命名要求。

      • BucketName的命名規則如下:

        • Bucket名稱在OSS範圍內必須全域唯一。

        • 只能包括小寫字母、數字和短劃線(-)。

        • 必須以小寫字母或者數字開頭和結尾。

        • 長度為3~63個字元。

      • ObjectKey的命令規則如下:

        • 使用UTF-8編碼。

        • 長度必須在1~1023位元組之間。

        • 不能以正斜線(/)或者反斜線(\)開頭。

        • 區分大小寫。

    4. 檢查簽名方法。

      • 如果您是自己實現的簽名且您的業務環境適合使用SDK,請參考OSS SDK提供的簽名方法完成簽名。更多資訊,請參見使用阿里雲SDK發起請求概述

      • 如果您是自己實現的簽名且您的業務環境不適合使用SDK,您需要手動編寫代碼計算簽名並將簽名添加到REST API請求中。更多資訊,請參見使用REST API發起請求

    5. 確認使用的代理中是否添加額外的Header。

  • 採用相容Amazon S3 SDK發起請求。具體操作,請參見使用Amazon S3 SDK訪問OSS