全部產品
Search
文件中心

:使用OSS的API介面或SDK時提示“SignatureDoesNotMatch”簽名相關的報錯

更新時間:Oct 29, 2025

問題描述

使用OSS的API介面或SDK時,提示“SignatureDoesNotMatch”簽名相關的報錯。

SignatureDoesNotMatch: The request signature we calculated does not match the signature you provided. Check your key and signing method

問題原因

使用OSS的API介面或SDK時,用戶端需要攜帶簽名資訊與OSS服務端進行校正,若用戶端計算的簽名與OSS服務端計算的簽名不一致,請求不會通過驗證。

解決方案

檢查AK、SK準確性

  1. 您可以通過ossbrowser工具校正您的AK和SK是否正確,ossbrowser工具使用方法請參見ossbrowser 2.0

  2. 若使用ossbrowser也無法開啟,說明AK和SK不正確,請參見建立AccessKey,建立新的AK和SK。

檢查Endpoint資訊準確性

需要您查看您Endpoint是否正確,不同地區的Bucket對應不同的Endpoint,詳情請參見訪問網域名稱和資料中心。Endpoint資訊格式如endpoint = "http://oss-cn-beijing.aliyuncs.com"。OSS資源的兩種請求方式如下:

  • 若以URL的形式來請求OSS的資源,OSS的URL構成如下。

    [$Schema]://[$Bucket].[$Endpoint]/[$Object]
    說明

    說明

    • [$Schema]:HTTP或者為HTTPS。

    • [$Bucket]:OSS儲存空間名稱。

    • [$Endpoint]:各地區Endpoint詳情請參見訪問網域名稱和資料中心

    • [$Object] :上傳到OSS上的檔案的訪問路徑。

  • 若以SDK的形式來請求OSS的資源,如下所示。

    String accessKeyId = "XXX";
    String accessKeySecret = "XXX";
    String endpoint = "oss-cn-XXX.aliyuncs.com";
    OSSClient client = new OSSClient(endpoint, accessKeyId, accessKeySecret);

檢查SDK的版本

使用部分舊版本的SDK可能會出現“SignatureDoesNotMatch”的問題,如果您使用的是舊版本SDK,請統一使用最新的SDK版本,官網對應的SDK連結有最新版本資訊,擷取地址請參見Object Storage Service提供的主流語言SDK

檢查您構造的API

如果簽名是您自己構造的API,建議您使用OSS提供的SDK,詳情請參看授權訪問。或者您檢查下自身計算簽名的演算法邏輯,建構簽章演算法請參見在Header中包含簽名

適用於

  • Object Storage Service