全部產品
Search
文件中心

Object Storage Service:V1簽名升級為V4簽名指引

更新時間:Jun 28, 2024

OSS簽名機制主要用於驗證請求寄件者的身份以及請求的有效性,防止未授權訪問和資料篡改。OSS支援V1和V4兩種不同版本的簽名演算法。相比V1簽名,V4簽名採用了更為安全的雜湊演算法(OSS4-HMAC-SHA256)和更加複雜的簽名計算流程,確保資料互動的安全性。本文介紹如何升級為安全性更高的V4簽名。

重要

阿里雲Object Storage Service自2024年12月1日起不再對新使用者(即新UID )開放使用V1簽名,並將於2025年06月01日起停止更新與維護且不再對新增Bucket開放使用V1簽名。請儘快切換到V4簽名,避免影響服務。更多資訊,請參見公告說明

自動實現V4簽名

V4簽名計算過程較為繁瑣,任何微小的計算偏差都可能導致請求失效,建議您採用阿里雲SDK發起OSS服務要求。阿里雲SDK內建了V4簽名機制,能自動處理簽名計算,免除您手動編寫及調試代碼實現V4簽名。您可以根據使用的程式設計語言或平台,參考以下文檔將SDK更新至支援V4簽名的版本。

說明

通過阿里雲SDK自動實現V4簽名時,除指定Endpoint以外,您還需要指定阿里雲通用Region ID作為發起請求地區的標識,樣本值為cn-hangzhou。更多資訊,請參見訪問網域名稱和資料中心

SDK

版本要求

參考文檔

Java SDK

3.17.4及以上版本

Java實現V4簽名

PHP SDK

2.7.0及以上版本

PHP實現V4簽名

Node.js SDK

6.20.0及以上版本

Node.js實現V4簽名

Python SDK

2.18.4及以上版本

Python實現V4簽名

Browser.js SDK

6.20.0及以上版本

Browser.js實現V4簽名

.NET SDK

2.14.0及以上版本

.NET實現V4簽名

Go SDK

3.0.2及以上版本

Go實現V4簽名

C++ SDK

1.10.0及以上版本

C++實現V4簽名

C SDK

3.11.0及以上版本

C實現V4簽名

手動實現V4簽名

當您無法使用阿里雲SDK時,您可以參考以下方法手動實現V4簽名演算法,然後通過V4簽名的方式訪問OSS資源。

簽名方式

說明

參考文檔

在Header中包含簽名

在OSS中,使用HTTP請求的Authorization Header來攜帶簽名資訊是進行身分識別驗證的最常見方法。除了使用POST簽名和URL簽名之外,所有的OSS操作都需要通過Authorization Header來進行身分識別驗證。

在Header中包含V4簽名

在URL中包含簽名

通過產生一個包含簽名和其他必要請求資訊的預簽名URL的方式,在不透露訪問憑證的情況下,授予第三方在特定有效期間內對OSS資源的存取權限。

在URL中包含V4簽名

在PostObject中包含簽名

PostObject簽名旨在實現通過HTML表單直接上傳檔案到OSS的一種簽名機制。這種機制允許使用者在用戶端(例如Web瀏覽器)構造一個HTML表單,表單中包含要上傳檔案的欄位以及其他必要的參數,例如簽名、存取金鑰、Bucket名稱、對象鍵等。當表單提交時,這些資訊會通過HTTP POST請求發送到OSS,OSS會對POST請求進行合法性驗證。

PostObject包含V4簽名