存儲空間(Bucket)開啟版本控制后,針對數據的覆蓋和刪除操作將會以歷史版本的形式保存下來。當Bucket累積了大量的歷史版本或者過期刪除標記時,您可以結合生命周期規則刪除不必要的歷史版本以及過期刪除標記,從而減少存儲成本并有效提升列舉Object的性能。
前提條件
目標Bucket已開啟版本控制。詳情請參見開啟版本控制。
場景說明
當目標存儲空間examplebucket開啟版本控制后,王先生在某一年2月8日上傳了名為example.txt的文件,此后在同一年份的不同時間內對example.txt文件進行了多次覆蓋或不指定versionID的刪除操作,OSS對該文件的每一次覆蓋和刪除操作均生成全局唯一的隨機字符串versionID(圖示中的versionID均以簡易版本號標識,不代表實際versionID),并將文件以歷史版本的形式保存在目標Bucket中。
文件經多次覆蓋和不指定versionID的刪除操作后,結合業務場景的變化,王先生需實現如下需求:
僅保留5月8日以及9月10日上傳的文件版本。
將5月8日生成的最新歷史版本文件恢復為當前版本。
注意事項
使用生命周期過期策略管理不同版本Object時,有如下注意事項:
當前版本Object過期策略
在開啟版本控制的情況下,如果生命周期規則中的過期策略作用于當前版本Object,OSS會添加刪除標記將當前版本Object作為歷史版本Object保留,而不是刪除當前版本Object,且刪除標記將成為Object的當前版本。
在暫停版本控制的情況下,如果生命周期規則中的過期策略作用于當前版本Object,OSS會添加刪除標記作為當前版本,且versionID為null。由于OSS保證同一個Object只會有一個versionID為null的版本,因此原versionID為null的版本將被覆蓋。
歷史版本Object過期策略
在開啟或暫停版本控制的情況下,如果生命周期規則中的過期策略作用于歷史版本Object,OSS會永久刪除歷史版本Object,且無法恢復永久刪除的歷史版本Object。
有關生命周期規則的更多信息,請參見基于最后一次修改時間的生命周期規則。
操作步驟
保留指定版本文件
假設當前時間為9月10日,則通過配置以下生命周期規則可實現僅保留5月8日以及9月10日上傳的文件版本。
恢復指定版本文件
將5月8日生成的最新歷史版本文件恢復為當前版本的操作步驟如下:
在examplebucket管理頁面,選擇文件管理>文件列表。
單擊歷史版本右側的顯示。
找到更新時間為5月8日對應版本的example.txt文件。
單擊目標歷史版本右側的恢復。
相關文檔
您也可以使用API方式恢復文件。如果需要恢復Object的早期版本為當前版本,您只需將Object的早期版本拷貝到同一個Bucket中,OSS會將該Object對應早期版本置為當前版本。更多信息,請參見CopyObject。