如果您希望在錯誤覆蓋或者刪除對象(Object)後,能夠將Object恢複至任意時刻的歷史版本。您需要通過bucket-versioning命令開啟版本控制。版本控制是針對Bucket層級的資料保護功能。開啟版本控制後,針對資料的覆蓋和刪除操作將會以歷史版本的形式儲存下來。
注意事項
要設定版本控制狀態,您必須具有
oss:PutBucketVersioning
許可權;要擷取版本控制狀態,您必須具有oss:GetBucketVersioning
許可權。具體操作,請參見為RAM使用者授權自訂的權限原則。
從ossutil 1.6.16版本開始,命令列中Binary名稱支援直接使用ossutil,您無需根據系統重新整理Binary名稱。如果您的ossutil版本低於1.6.16,則需要根據系統重新整理Binary名稱。更多資訊,請參見命令列工具ossutil命令參考。
關於版本控制的功能詳情,請參見版本控制概述。
設定版本控制狀態
命令格式
ossutil bucket-versioning --method put oss://bucketname versioning
參數說明如下:
參數
說明
bucketname
待設定版本控制狀態的目標Bucket名稱。
versioning
為目標Bucket設定版本控制狀態。取值如下:
enabled:開啟版本控制。當Bucket處於開啟版本控制狀態時,OSS將為新上傳的Object產生全域唯一的隨機字串版本ID。有關啟用版本控制狀態下Object相關操作的更多資訊,請參見開啟版本控制下Object的操作。
suspended:暫停版本控制。當Bucket處於暫停版本控制狀態時,OSS將為新上傳的Object產生特殊字元串為“null”的版本ID。有關暫停版本控制狀態下Object的相關操作的更多資訊,請參見暫停版本控制下Object的操作。
重要預設情況下,Bucket版本控制狀態為“未開啟”。一旦Bucket開啟了版本控制,將無法返回至“未開啟”狀態。但是,您可以暫停Bucket版本控制。
使用樣本
對目標儲存空間examplebucket開啟版本控制。
ossutil bucket-versioning --method put oss://examplebucket enabled
對目標儲存空間examplebucket暫停版本控制。
ossutil bucket-versioning --method put oss://examplebucket suspended
以下輸出結果表明examplebucket已成功設定版本控制狀態。
0.261209(s) elapsed
擷取版本控制狀態
命令格式
ossutil bucket-versioning --method get oss://bucketname
使用樣本
查詢examplebucket的版本控制狀態。
ossutil bucket-versioning --method get oss://examplebucket
以下輸出結果表明examplebucket已開啟版本控制。
bucket versioning status:Enabled 0.218001(s) elapsed
以下輸出結果表明examplebucket已暫停版本控制。
bucket versioning status:Suspended 0.168791(s) elapsed
以下輸出結果表明examplebucket未開啟版本控制。
bucket versioning status:Null 0.158691(s) elapsed
相關操作
通用選項
當您需要通過命令列工具ossutil切換至另一個地區的Bucket時,可以通過-e選項指定該Bucket所屬的Endpoint。當您需要通過命令列工具ossutil切換至另一個阿里雲帳號下的Bucket時,可以通過-i選項指定該帳號的AccessKey ID,並通過-k選項指定該帳號的AccessKey Secret。
例如您需要為另一個阿里雲帳號下,華東1(杭州)名為examplebucket的儲存空間開啟版本控制,命令如下:
ossutil bucket-versioning--method put oss://examplebucket enabled -e oss-cn-hangzhou.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA**** -k 67DLVBkH7EamOjy2W5RVAHUY9H****
關於此命令的其他通用選項的更多資訊,請參見通用選項。