閱讀940 返回首頁    go 魔獸


管理對象生命周期__管理文件_開發人員指南_對象存儲 OSS-阿裏雲

OSS 提供 Object(文件)生命周期管理來為您管理Object。您可以為某個Bucket定義生命周期配置,來為該Bucket的Object定義各種規則。目前,您可以通過規則來刪除相匹配的Object。每條規則都由如下幾個部分組成:

  • Object名稱前綴
    隻有匹配該前綴的Object才適用這個規則。
  • 操作
    您希望對匹配的Object所執行的操作。
  • 日期或天數
    您期望在特定日期或者在Object最後修改時間後多少天執行指定的操作。

隻要Object名稱前綴和一條規則的前綴匹配,那麼該規則就適用於它。例如,一個Bucket有如下幾個Object:

  1. logs/program.log.1
  2. logs/program.log.2
  3. logs/program.log.3
  4. doc/readme.txt

如果一個規則指定的前綴是logs/,那麼該規則就適用於前三個以logs/開頭的Object;如果前綴是doc/readme.txt,那麼這條規則就隻對doc/readme.txt起作用。

當前,規則支持“過期刪除”操作。例如,您可以設置這樣的規則:當前綴為logs/的Object的最後一次更新是30天前,就刪除它們;也可以指定在某年某月某日刪除doc/readme.txt。

當一個Object匹配到某個過期規則時,GET和HEAD該Object時,OSS在響應Header中加入x-oss-expiration頭。它包含了兩個鍵值對:expiry-date的值表示Object的過期日期;rule-id的值表示相匹配的規則ID。

舉例

您可以通過OSS開放接口來設置Bucket的生命周期配置。生命周期配置是由XML格式給出的,下麵是一個具體的例子。

  1. <LifecycleConfiguration>
  2. <Rule>
  3. <ID>delete logs after 10 days</ID>
  4. <Prefix>logs/</Prefix>
  5. <Status>Enabled</Status>
  6. <Expiration>
  7. <Days>10</Days>
  8. </Expiration>
  9. </Rule>
  10. <Rule>
  11. <ID>delete doc</ID>
  12. <Prefix>doc/</Prefix>
  13. <Status>Disabled</Status>
  14. <Expiration>
  15. <CreatedBeforeDate>2014-12-31T00:00:00.000Z</CreatedBeforeDate>
  16. </Expiration>
  17. </Rule>
  18. </LifecycleConfiguration>

在這個例子中,各個元素的含義如下:

  • <ID>:每個規則唯一的標識
  • <Status>:Enabled或Disabled。OSS隻會應用值為Enabled的規則。
  • <Prefix>:前綴。
  • <Expiration>:過期操作。子元素<CreatedBeforeDate><Days>指定絕對和相對過期時間。
    • 這裏CreatedBeforeDate表示的含義是:將最後修改時間早於2014-12-31T00:00:00.000Z的文件刪除。晚於這個時間的Object不會被刪除。
    • 這裏Days表示的含義是:將相對最後修改時間10天之後的Object刪除。

在這個例子中,第一條規則會刪除前綴為logs/的,最後更新時間是10天前的Object。第二條規則雖然指定了刪除2014年12月31日之前被修改的前綴為doc/的Object,但是由於它的Status是Disabled狀態,所以該規則並不會生效。

細節分析

  • 前綴的命名規範和Object一樣。
  • 當前綴為空時,表明該規則適用於Bucket裏的所有Object。
  • 任意兩個前綴不能有重疊。例如,如果同一Bucket的兩條規則,一個前綴是logs/,一個是logs/program,那麼OSS會返回錯誤。
  • 當規則設置為在指定日期刪除Object,該日期必須是UTC午夜零點,並且符合形如2014-01-01T00:00:00.000Z的ISO8601格式。OSS會在當前時間超過2014-01-01午夜零點時刪除匹配的Object。
  • 當規則設定為天數時,OSS把Object最後更新時間(Last-Modified)加上天數,再取整到下一個UTC午夜零點。例如,一個Object的最後更新時間是UTC的2014年4月12日上午1點,相匹配的規則定義的天數是3天,那麼過期時間就是UTC 2014年4月16日0點整。
  • OSS會在指定時間刪除與規則相匹配的Object。請注意,通常Object會在指定時間稍稍延後一段時間才被刪除。
  • 通常Object的最後更新時間和創建時間相差無幾。當一個Object被多次Put時,最後更新時間是最後一次Put的時間;當一個Object被Copy到自身時,最後更新時間是Copy發生時的時間。

功能使用參考

最後更新:2016-11-23 16:04:09

  上一篇:go 刪除對象__管理文件_開發人員指南_對象存儲 OSS-阿裏雲
  下一篇:go 管理跨區域複製__管理文件_開發人員指南_對象存儲 OSS-阿裏雲