並不是所有上傳至OSS的資料都需要頻繁訪問,但基於資料合規或者存檔等原因,部分資料仍需要繼續以冷儲存類型進行儲存。或者基於業務使用情境,希望大量刪除Bucket內不再需要儲存的資料,您可以通過ossutil lifecycle命令配置基於最後一次修改時間(Last Modified Time)的生命週期規則。如果您希望OSS自動監測資料的訪問模式並識別冷資料,然後將識別出來的冷資料進行儲存類型的轉換,從而達到資料的冷熱階層式存放區,最終降低儲存成本,您可以配置基於最後一次訪問時間(Last Access Time)的生命週期規則。
注意事項
要添加或修改生命週期規則,您必須具有
oss:PutBucketLifecycle
許可權;要擷取生命週期規則配置,您必須具有oss:GetBucketLifecycle
許可權;要刪除生命週期規則配置,您必須具有oss:DeleteBucketLifecycle
許可權。具體操作,請參見為RAM使用者授權自訂的權限原則。在配置基於最後一次修改時間或者最後一次訪問時間的生命週期規則之前,請確保您已瞭解該功能。詳情請參見基於最後一次修改時間的生命週期規則和基於最後一次訪問時間的生命週期規則。
從ossutil 1.6.16版本開始,命令列中Binary名稱支援直接使用ossutil,您無需根據系統重新整理Binary名稱。如果您的ossutil版本低於1.6.16,則需要根據系統重新整理Binary名稱。更多資訊,請參見命令列工具ossutil命令參考。
關於生命週期規則的更多資訊,請參見生命週期概述。
僅支援通過生命週期規則刪除雲盒Bucket中的Object,不支援轉換Object儲存類型。
添加或修改生命週期規則
添加或修改生命週期規則步驟如下:
建立本地檔案,並在檔案中配置XML格式的生命週期規則。
ossutil先從本地檔案中讀取生命週期配置,然後將讀取到生命週期配置添加到指定的Bucket。
命令格式
ossutil lifecycle --method put oss://bucketname local_xml_file
參數說明如下:
參數
說明
bucketname
添加或修改生命週期規則的儲存空間名稱。
local_xml_file
配置生命週期規則的本地檔案名稱,例如
localfile.xml
。使用樣本
重要您可以為Bucket添加多條生命週期規則,規則名稱(ID)是生命週期配置的唯一標識。若添加的規則ID已存在,則返回409錯誤。
在本地建立名為
localfile.xml
檔案,並根據使用情境寫入不同的生命週期規則。常見的生命週期規則如下:
樣本1
指定生命週期規則應用於examplebucket內的所有Object(即Prefix為空白),在距其最後一次修改時間超過365天后全部刪除;此外還指定了Prefix為test/,指示與首碼test/匹配的Object距其最後修改時間超過30天后轉換為Archive儲存類型。
有關生命週期支援轉換的儲存類型的更多資訊,請參見通過生命週期規則自動轉換Object的儲存類型。
<?xml version="1.0" encoding="UTF-8"?> <LifecycleConfiguration> <Rule> <ID>test-rule1</ID> <Prefix></Prefix> <Status>Enabled</Status> <Expiration> <Days>365</Days> </Expiration> </Rule> <Rule> <ID>test-rule2</ID> <Prefix>test/</Prefix> <Status>Enabled</Status> <Transition> <Days>30</Days> <StorageClass>Archive</StorageClass> </Transition> </Rule> </LifecycleConfiguration>
樣本2
指定生命週期規則應用於examplebucket內的所有Object(即Prefix為空白),在其最後一次修改時間早於2019年12月30日的Object到期。
<?xml version="1.0" encoding="UTF-8"?> <LifecycleConfiguration> <Rule> <ID>test-rule0</ID> <Prefix></Prefix> <Status>Enabled</Status> <Expiration> <CreatedBeforeDate>2019-12-30T00:00:00.000Z</CreatedBeforeDate> </Expiration> </Rule> </LifecycleConfiguration>
樣本3
在版本控制狀態下,指定examplebucket內的所有Object距其最後一次修改時間超過10天后轉換為IA儲存類型,Object成為非目前的版本60天后轉換為Archive儲存類型,Object成為非目前的版本90天后刪除。
<?xml version="1.0" encoding="UTF-8"?> <LifecycleConfiguration> <Rule> <ID>test-rule3</ID> <Prefix></Prefix> <Status>Enabled</Status> <Transition> <Days>10</Days> <StorageClass>IA</StorageClass> </Transition> <NoncurrentVersionTransition> <NoncurrentDays>60</NoncurrentDays> <StorageClass>Archive</StorageClass> </NoncurrentVersionTransition> <NoncurrentVersionExpiration> <NoncurrentDays>90</NoncurrentDays> </NoncurrentVersionExpiration> </Rule> </LifecycleConfiguration>
樣本4
在以下生命週期規則中指定首碼為data/的所有檔案在距其最後一次訪問時間200天后轉為低頻訪問類型。且再次訪問首碼為logs的檔案時,這些檔案仍保留為低頻訪問類型。
<?xml version="1.0" encoding="UTF-8"?> <LifecycleConfiguration> <Rule> <ID>test-rule4</ID> <Prefix>data/</Prefix> <Status>Enabled</Status> <Transition> <Days>200</Days> <StorageClass>IA</StorageClass> <IsAccessTime>true</IsAccessTime> <ReturnToStdWhenVisit>false</ReturnToStdWhenVisit> </Transition> </Rule> </LifecycleConfiguration>
為examplebucket添加生命週期規則。
ossutil lifecycle --method put oss://examplebucket localfile.xml
以下輸出結果表明已成功添加生命週期規則。
0.299514(s) elapsed
擷取生命週期規則配置
命令格式
ossutil lifecycle --method get oss://bucketname [local_xml_file]
參數說明如下:
參數
說明
bucketname
擷取生命週期規則配置的目標Bucket名稱。
local_xml_file
用於存放生命週期規則配置的本地檔案名稱,例如
localfile.xml
。如果未指定此參數,則生命週期規則配置將直接輸出到螢幕。使用樣本
擷取examplebucket配置的生命週期規則。
ossutil lifecycle --method get oss://examplebucket localfile.xml
以下輸出結果表明已成功擷取生命週期規則配置,並將其寫入本地localfile.xml檔案。
0.212407(s) elapsed
刪除生命週期規則配置
命令格式
ossutil lifecycle --method delete oss://bucketname
使用樣本
刪除examplebucket的生命週期規則配置。
ossutil lifecycle --method delete oss://examplebucket
以下輸出結果表明已刪除examplebucket的生命週期規則配置。
0.530750(s) elapsed
通用選項
當您需要通過命令列工具ossutil切換至另一個地區的Bucket時,可以通過-e選項指定該Bucket所屬的Endpoint。當您需要通過命令列工具ossutil切換至另一個阿里雲帳號下的Bucket時,可以通過-i選項指定該帳號的AccessKey ID,並通過-k選項指定該帳號的AccessKey Secret。
例如您需要為另一個阿里雲帳號下,華東1(杭州)名為examplebucket的Bucket配置生命週期規則,命令如下:
ossutil lifecycle --method put oss://examplebucket localfile.xml -e oss-cn-hangzhou.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA**** -k 67DLVBkH7EamOjy2W5RVAHUY9H****
關於此命令的其他通用選項的更多資訊,請參見通用選項。