日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

基于最后一次訪問(wèn)時(shí)間的生命周期規(guī)則

您可以通過(guò)基于最后一次訪問(wèn)時(shí)間(LastAccessTime)策略的生命周期規(guī)則來(lái)自動(dòng)監(jiān)測(cè)數(shù)據(jù)的訪問(wèn)模式并識(shí)別冷數(shù)據(jù),然后將識(shí)別出來(lái)的冷數(shù)據(jù)進(jìn)行存儲(chǔ)類型的轉(zhuǎn)換,從而達(dá)到數(shù)據(jù)的冷熱分層存儲(chǔ),最終降低存儲(chǔ)成本。

使用場(chǎng)景

  • 多媒體場(chǎng)景

    某網(wǎng)站的視頻、圖片存儲(chǔ)在OSS上,歷史數(shù)據(jù)會(huì)逐漸從熱轉(zhuǎn)冷。因此,您可能需要將網(wǎng)站內(nèi)長(zhǎng)時(shí)間不被訪問(wèn)的數(shù)據(jù)保存為低頻訪問(wèn)類型。此外,部分?jǐn)?shù)據(jù)距離上傳時(shí)間已久,但仍然是熱門訪問(wèn)數(shù)據(jù),這部分?jǐn)?shù)據(jù)需要繼續(xù)保存為標(biāo)準(zhǔn)存儲(chǔ)類型。在該場(chǎng)景下應(yīng)選用基于最后一次訪問(wèn)時(shí)間的生命周期規(guī)則,用于自動(dòng)識(shí)別冷熱數(shù)據(jù)并進(jìn)行分層存儲(chǔ),從而降低存儲(chǔ)成本。

  • 相冊(cè)或網(wǎng)盤場(chǎng)景

    對(duì)于長(zhǎng)時(shí)間沒(méi)有訪問(wèn)的冷數(shù)據(jù),希望設(shè)置自定義轉(zhuǎn)儲(chǔ)天數(shù),自動(dòng)將冷數(shù)據(jù)轉(zhuǎn)為低頻訪問(wèn)類型,并確保數(shù)據(jù)的實(shí)時(shí)訪問(wèn)。

  • 生命科學(xué)場(chǎng)景

    基因測(cè)序生成的大量業(yè)務(wù)數(shù)據(jù),往往需要根據(jù)數(shù)據(jù)的最后訪問(wèn)時(shí)間而非最后修改時(shí)間來(lái)判斷數(shù)據(jù)的冷熱。按以往,客戶只能手動(dòng)通過(guò)日志分析或其他方式進(jìn)行數(shù)據(jù)冷熱的分層管理。但如果選用基于最后一次訪問(wèn)時(shí)間的生命周期規(guī)則,則可實(shí)現(xiàn)由服務(wù)端根據(jù)最后訪問(wèn)時(shí)間來(lái)自動(dòng)識(shí)別冷熱數(shù)據(jù)并實(shí)現(xiàn)數(shù)據(jù)分層存儲(chǔ)。不僅如此,您還可以在同一條生命周期規(guī)則中同時(shí)結(jié)合最后訪問(wèn)時(shí)間與最后修改時(shí)間的策略,從而更靈活地進(jìn)行數(shù)據(jù)管理。

使用限制

地域?qū)傩韵拗?/b>

  • 無(wú)地域?qū)傩源鎯?chǔ)空間不支持配置基于最后一次訪問(wèn)時(shí)間的生命周期規(guī)則。

  • 金融云地域不支持配置基于最后一次訪問(wèn)時(shí)間的生命周期規(guī)則。

不支持刪除數(shù)據(jù)

不支持基于最后一次訪問(wèn)時(shí)間的生命周期規(guī)則進(jìn)行數(shù)據(jù)刪除。

匹配條件

生命周期規(guī)則目前僅支持根據(jù)前綴和標(biāo)簽進(jìn)行匹配,不支持通配符匹配、后綴匹配以及正則匹配。

碎片過(guò)期限制

不支持對(duì)重疊前綴的Object設(shè)置兩條或兩條以上包含碎片過(guò)期策略的生命周期規(guī)則。示例如下:

  • 示例一

    您對(duì)整個(gè)Bucket設(shè)置了一條包含碎片過(guò)期策略的生命周期規(guī)則,則不支持對(duì)Bucket中任意前綴的Object再設(shè)置一條包含碎片過(guò)期策略的生命周期規(guī)則。

  • 示例二

    您對(duì)某個(gè)Bucket中前綴為dir1設(shè)置了一條包含碎片過(guò)期策略的生命周期規(guī)則,則不支持對(duì)該Bucket中包含重疊前綴(例如dir1/dir2)的Object再設(shè)置一條包含碎片過(guò)期策略的生命周期規(guī)則。

注意事項(xiàng)

規(guī)則數(shù)量

單個(gè)Bucket最多支持配置1000條生命周期規(guī)則,單條生命周期規(guī)則中可同時(shí)包含最后一次修改時(shí)間以及最后一次訪問(wèn)時(shí)間的策略。

費(fèi)用說(shuō)明

  • Object監(jiān)控管理費(fèi)用

    開(kāi)啟訪問(wèn)跟蹤后會(huì)產(chǎn)生Object監(jiān)控管理費(fèi),但OSS暫不收取該費(fèi)用。

  • 低頻訪問(wèn)不足規(guī)定時(shí)長(zhǎng)容量費(fèi)用

    低頻訪問(wèn)類型Object有最低30天的存儲(chǔ)時(shí)長(zhǎng)要求。如果存儲(chǔ)時(shí)長(zhǎng)未達(dá)到最低天數(shù)要求,還會(huì)產(chǎn)生不足規(guī)定時(shí)長(zhǎng)容量費(fèi)用。該計(jì)費(fèi)項(xiàng)結(jié)合生命周期規(guī)則的示例說(shuō)明如下:

    示例一:標(biāo)準(zhǔn)類型Object在其創(chuàng)建10天后,通過(guò)生命周期將其轉(zhuǎn)換為低頻訪問(wèn)類型,過(guò)了5天后又將其轉(zhuǎn)回標(biāo)準(zhǔn)存儲(chǔ)。此時(shí)會(huì)產(chǎn)生15天的低頻訪問(wèn)不足規(guī)定時(shí)長(zhǎng)容量費(fèi)用。

    示例二:標(biāo)準(zhǔn)類型Object在其創(chuàng)建10天后,通過(guò)生命周期將其轉(zhuǎn)換為低頻訪問(wèn)類型,過(guò)了15天后將其刪除。此時(shí)會(huì)產(chǎn)生5天的低頻訪問(wèn)不足規(guī)定時(shí)長(zhǎng)容量費(fèi)用。

    更多信息,請(qǐng)參見(jiàn)存儲(chǔ)費(fèi)用

  • 低頻訪問(wèn)數(shù)據(jù)取回費(fèi)用

    訪問(wèn)低頻訪問(wèn)類型文件產(chǎn)生的費(fèi)用,按數(shù)據(jù)取回量計(jì)費(fèi)。更多信息,請(qǐng)參見(jiàn)數(shù)據(jù)處理費(fèi)用

  • 請(qǐng)求費(fèi)用

    通過(guò)生命周期規(guī)則轉(zhuǎn)換Object存儲(chǔ)類型時(shí)涉及請(qǐng)求費(fèi)用。更多信息,請(qǐng)參見(jiàn)請(qǐng)求費(fèi)用

覆蓋語(yǔ)義

PutBucketLifecycle為覆蓋語(yǔ)義。例如,某個(gè)Bucket已配置了生命周期規(guī)則Rule1,您需要在Rule1基礎(chǔ)上繼續(xù)追加生命周期規(guī)則Rule2,您需要執(zhí)行以下操作。

  • 調(diào)用GetBucketLifecycle接口獲取當(dāng)前生命周期規(guī)則配置Rule1。

  • 在Rule1基礎(chǔ)上疊加Rule2。

  • 調(diào)用PutBucketLifecycle接口更新生命周期規(guī)則為Rule1+Rule2。

生效時(shí)間

生命周期規(guī)則創(chuàng)建后的24小時(shí)內(nèi),OSS會(huì)加載規(guī)則。規(guī)則加載完成后,OSS會(huì)在每天的北京時(shí)間8:00開(kāi)始執(zhí)行規(guī)則。

執(zhí)行完成時(shí)間

對(duì)于未配置標(biāo)簽的生命周期規(guī)則

  • 華東1(杭州)、華東2(上海)、華北2(北京)、華北 3(張家口)、華北6(烏蘭察布)、華南1(深圳)、新加坡地域執(zhí)行10億或以下次生命周期相關(guān)操作(包括Object存儲(chǔ)類型轉(zhuǎn)換以及碎片過(guò)期),可在24小時(shí)內(nèi)完成。如果生命周期相關(guān)操作超出10億次,則可能超出24小時(shí)。

  • 其他地域執(zhí)行1億或以下次生命周期相關(guān)操作,可在24小時(shí)內(nèi)完成。如果生命周期相關(guān)操作超出1億次,則可能超出24小時(shí)。

對(duì)于已配置標(biāo)簽的生命周期規(guī)則

  • 華東1(杭州)、華東2(上海)、華北2(北京)、華北 3(張家口)、華北6(烏蘭察布)、華南1(深圳)、新加坡地域執(zhí)行5億或以下次生命周期相關(guān)操作(包括Object存儲(chǔ)類型轉(zhuǎn)換以及碎片過(guò)期),可在24小時(shí)內(nèi)完成。如果生命周期相關(guān)操作超出5億次,則可能超出24小時(shí)。

  • 其他地域執(zhí)行5千萬(wàn)或以下次生命周期相關(guān)操作,可在24小時(shí)內(nèi)完成。如果生命周期相關(guān)操作超出5千萬(wàn)次,則可能超出24小時(shí)。

說(shuō)明

如果存儲(chǔ)空間開(kāi)啟了版本控制,則對(duì)Object的每個(gè)版本均記為一次操作。

最后一次訪問(wèn)時(shí)間更新策略

生命周期頁(yè)面打開(kāi)啟用訪問(wèn)跟蹤開(kāi)關(guān)后,OSS默認(rèn)以訪問(wèn)跟蹤開(kāi)啟時(shí)間作為Bucket中所有Object的最后一次訪問(wèn)時(shí)間,如果24小時(shí)內(nèi),同一個(gè)Object有多次GetObject請(qǐng)求,則OSS會(huì)將首次GetObject的請(qǐng)求時(shí)間記錄為Object最后一次訪問(wèn)時(shí)間。其他操作(例如PutObject、CopyObject等)會(huì)根據(jù)操作時(shí)間更新Object的最后一次訪問(wèn)時(shí)間。

關(guān)于哪些操作會(huì)更新Object的最后一次訪問(wèn)時(shí)間的更多信息,請(qǐng)參見(jiàn)哪些操作會(huì)更新Object的LastAccessTime?

轉(zhuǎn)儲(chǔ)的Object類型

  • 基于最后一次訪問(wèn)時(shí)間的生命周期規(guī)則支持將Object從標(biāo)準(zhǔn)存儲(chǔ)類型轉(zhuǎn)為低頻訪問(wèn)類型,您還可以選擇當(dāng)Object被訪問(wèn)后是否自動(dòng)轉(zhuǎn)回標(biāo)準(zhǔn)存儲(chǔ)類型。

  • 基于最后一次訪問(wèn)時(shí)間的生命周期規(guī)則支持將Object從標(biāo)準(zhǔn)存儲(chǔ)或低頻訪問(wèn)類型轉(zhuǎn)為歸檔、冷歸檔或深度冷歸檔存儲(chǔ)類型,也可以選擇將Object從歸檔轉(zhuǎn)為冷歸檔或深度冷歸檔存儲(chǔ)類型。如果您需要將Object從標(biāo)準(zhǔn)存儲(chǔ)或低頻訪問(wèn)類型轉(zhuǎn)換為歸檔、冷歸檔或深度冷歸檔存儲(chǔ)類型,請(qǐng)提交工單申請(qǐng)轉(zhuǎn)換為歸檔、冷歸檔或深度冷歸檔類型的權(quán)限,申請(qǐng)通過(guò)后您需要指定轉(zhuǎn)換的目標(biāo)存儲(chǔ)類型。

    重要

    工單申請(qǐng)通過(guò)后,如果您基于最后一次訪問(wèn)時(shí)間策略將Object從標(biāo)準(zhǔn)存儲(chǔ)或低頻訪問(wèn)類型轉(zhuǎn)為歸檔、冷歸檔或深度冷歸檔類型,則Bucket中歸檔、冷歸檔或深度冷歸檔類型Object的最后一次訪問(wèn)時(shí)間默認(rèn)為該Bucket開(kāi)啟訪問(wèn)跟蹤的時(shí)間。

在開(kāi)通了OSS-HDFS服務(wù)的Bucket中配置生命周期規(guī)則

如果您對(duì)開(kāi)通了OSS-HDFS服務(wù)的Bucket設(shè)置或更新為匹配整個(gè)Bucket的生命周期規(guī)則,需通過(guò)NOT元素排除.dlsdata/,避免因生命周期規(guī)則觸發(fā)的Object存儲(chǔ)類型轉(zhuǎn)換行為影響OSS-HDFS數(shù)據(jù)讀寫。

p571593 (1)..jpeg

操作步驟

使用OSS控制臺(tái)

  1. 登錄OSS管理控制臺(tái)

  2. 單擊Bucket 列表,然后單擊目標(biāo)Bucket名稱。

  3. 在左側(cè)導(dǎo)航欄, 選擇數(shù)據(jù)管理 > 生命周期

  4. 生命周期頁(yè)面,打開(kāi)啟用訪問(wèn)跟蹤開(kāi)關(guān),然后單擊創(chuàng)建規(guī)則

  5. 創(chuàng)建生命周期規(guī)則面板,按如下說(shuō)明配置生命周期規(guī)則。

    • 存儲(chǔ)空間未開(kāi)啟版本控制

      區(qū)域

      配置項(xiàng)

      說(shuō)明

      基礎(chǔ)設(shè)置

      狀態(tài)

      設(shè)置生命周期規(guī)則的狀態(tài),可選擇啟動(dòng)禁用

      • 啟動(dòng)生命周期規(guī)則后,將按照配置的生命周期規(guī)則轉(zhuǎn)換數(shù)據(jù)存儲(chǔ)類型。

      • 禁用生命周期規(guī)則后,將中斷生命周期任務(wù)。

      策略

      選擇生命周期規(guī)則作用的Object。您可以選擇按前綴匹配配置到整個(gè)Bucket

      是否允許前綴重疊

      OSS默認(rèn)會(huì)檢查各個(gè)生命周期規(guī)則的前綴是否重疊。例如,您設(shè)置了以下兩條包含重疊前綴的生命周期規(guī)則:

      • 規(guī)則1

        指定該Bucket內(nèi)所有前綴為dir1/的Object在距離最后一次訪問(wèn)時(shí)間180天后轉(zhuǎn)為低頻訪問(wèn)類型。

      • 規(guī)則2

        指定該Bucket內(nèi)所有前綴為dir1/dir2/的Object在距離最后一次訪問(wèn)時(shí)間30天后轉(zhuǎn)歸檔存儲(chǔ)類型。

      在未選中該選項(xiàng)的情況下,因后臺(tái)檢測(cè)到dir1/dir2/目錄下的Object同時(shí)匹配兩條轉(zhuǎn)換規(guī)則,因此會(huì)拒絕設(shè)置以上兩條生命周期規(guī)則。

      在選中該選項(xiàng)的情況下,dir1/dir2/下的Object會(huì)在30天后轉(zhuǎn)歸檔存儲(chǔ)類型。dir1/下的其他Object會(huì)在180天后轉(zhuǎn)為低頻訪問(wèn)類型。

      前綴

      輸入規(guī)則要匹配的Object名稱的前綴。

      • 前綴設(shè)置為img,表示匹配名稱以img開(kāi)頭的所有Object,例如imgtest.png、img/example.jpg等。

      • 前綴設(shè)置為img/,表示匹配名稱以img/開(kāi)頭的所有Object,例如img/example.jpg、img/test.jpg等。

      標(biāo)簽

      生命周期規(guī)則僅針對(duì)擁有指定標(biāo)簽Object生效。例如選擇了按前綴匹配,設(shè)置前綴為img,并設(shè)置標(biāo)簽的key為a,value為1。則該規(guī)則將匹配所有名稱以img開(kāi)頭,標(biāo)簽為a=1的Object。關(guān)于對(duì)象標(biāo)簽的更多信息,請(qǐng)參見(jiàn)對(duì)象標(biāo)簽

      NOT

      NOT選項(xiàng)用于設(shè)置生命周期規(guī)則對(duì)指定前綴和標(biāo)簽的Object不生效。

      重要
      • 開(kāi)啟NOT選項(xiàng)時(shí),前綴和標(biāo)簽必須至少存在一項(xiàng),即同時(shí)設(shè)置前綴和標(biāo)簽或者只設(shè)置前綴或標(biāo)簽。

      • NOT語(yǔ)義定義標(biāo)簽中的key不支持與標(biāo)簽配置項(xiàng)中定義的key相同。

      • 開(kāi)啟NOT選項(xiàng)后,不支持設(shè)置碎片過(guò)期策略。

      文件大小

      指定生命周期規(guī)則生效的文件大小。

      • 指定最小文件:生命周期規(guī)則對(duì)大于該值的文件大小生效。取值大于0 B,小于5 TB。

      • 指定最大文件:生命周期規(guī)則對(duì)小于該值的文件大小生效。取值大于0 B,小于等于5 TB。

      重要

      如果在同一條生命周期中,同時(shí)配置了指定最小文件和指定最大文件:

      • 確保指定最大文件的值大于指定最小文件的值。

      • 不支持配置碎片執(zhí)行策略。

      • 不支持配置清除刪除標(biāo)記策略。

      文件執(zhí)行策略設(shè)置

      文件時(shí)間策略

      選擇Object過(guò)期策略,可選擇指定天數(shù)指定日期不啟用。選擇不啟用時(shí),文件過(guò)期策略不生效。

      生命周期管理規(guī)則

      配置轉(zhuǎn)換Object存儲(chǔ)類型的規(guī)則,數(shù)據(jù)可以轉(zhuǎn)換為如下類型:

      • 低頻存儲(chǔ)類型(數(shù)據(jù)被訪問(wèn)后,依舊保留在低頻檔)

      • 低頻存儲(chǔ)類型(數(shù)據(jù)一旦被訪問(wèn),回到標(biāo)準(zhǔn)檔)

      • 歸檔存儲(chǔ)

      • 冷歸檔存儲(chǔ)

      • 深度冷歸檔存儲(chǔ)

      例如:當(dāng)您選擇了最后一次訪問(wèn)時(shí)間策略,然后將過(guò)期天數(shù)設(shè)置為30,并指定數(shù)據(jù)在超出指定過(guò)期天數(shù)后將自動(dòng)轉(zhuǎn)換為低頻存儲(chǔ)類型(數(shù)據(jù)被訪問(wèn)后,依舊保留在低頻檔),則最后訪問(wèn)日期為2021年09月01日的Object會(huì)在2021年10月01日被轉(zhuǎn)換為指定的存儲(chǔ)類型。

      碎片執(zhí)行策略設(shè)置

      碎片過(guò)期策略

      設(shè)置對(duì)過(guò)期碎片執(zhí)行的操作。如果選中了標(biāo)簽,則無(wú)法配置該選項(xiàng)。您可以選擇碎片過(guò)期策略的指定天數(shù)指定日期,也可以選擇不啟用碎片過(guò)期策略。當(dāng)選擇不啟用時(shí),碎片過(guò)期策略不生效。

      重要

      生命周期規(guī)則至少包含文件過(guò)期策略或碎片過(guò)期策略。

      碎片規(guī)則

      根據(jù)碎片過(guò)期策略選擇的過(guò)期天數(shù)或過(guò)期日期設(shè)定碎片何時(shí)過(guò)期,碎片過(guò)期后會(huì)被自動(dòng)刪除,且刪除后不可恢復(fù)。

    • 存儲(chǔ)空間已開(kāi)啟版本控制

      開(kāi)啟版本控制后,基礎(chǔ)設(shè)置碎片執(zhí)行策略設(shè)置區(qū)域涉及的配置項(xiàng),與未開(kāi)啟版本控制的配置方法相同。以下表格僅介紹與未開(kāi)啟版本控制相比,開(kāi)啟版本控制后配置項(xiàng)存在的差異。

      區(qū)域

      配置項(xiàng)

      說(shuō)明

      當(dāng)前版本文件執(zhí)行策略設(shè)置

      清理對(duì)象刪除標(biāo)記

      開(kāi)啟版本控制后,清除策略中增加了清理對(duì)象刪除標(biāo)記選項(xiàng),其他選項(xiàng)與未開(kāi)啟版本控制時(shí)相同。

      選擇此選項(xiàng)后,如果當(dāng)前Object僅有一個(gè)版本且為刪除標(biāo)記時(shí),則OSS將刪除過(guò)期Object的刪除標(biāo)記。如果當(dāng)前Object有多個(gè)版本,且Object的最新版本為刪除標(biāo)記時(shí),則OSS將保留該刪除標(biāo)記。關(guān)于刪除標(biāo)記的更多信息,請(qǐng)參見(jiàn)刪除標(biāo)記

      歷史版本文件執(zhí)行策略設(shè)置

      文件時(shí)間策略

      設(shè)置歷史版本文件的過(guò)期策略,可選擇指定天數(shù)不啟用。當(dāng)選擇不啟用時(shí),文件過(guò)期策略不生效。

      生命周期管理規(guī)則

      設(shè)定一個(gè)過(guò)期天數(shù)N,歷史版本的Object會(huì)在其被轉(zhuǎn)換為歷史版本的N天后,并在過(guò)期的第二天執(zhí)行轉(zhuǎn)換存儲(chǔ)類型操作。例如設(shè)置為30,則在2021年09月01日被轉(zhuǎn)為歷史版本的Object會(huì)在2021年10月01日被轉(zhuǎn)換為指定存儲(chǔ)類型。

      重要

      您可以通過(guò)Object下一個(gè)版本的最后一次訪問(wèn)時(shí)間確定Object被轉(zhuǎn)為歷史版本的時(shí)間。

  6. 單擊確定

    生命周期規(guī)則保存成功后,您可以在策略列表中查看已設(shè)置的生命周期規(guī)則。

使用阿里云SDK

僅Java SDK、Go SDK支持基于最后一次訪問(wèn)時(shí)間創(chuàng)建生命周期規(guī)則。創(chuàng)建基于最后一次訪問(wèn)時(shí)間的生命周期規(guī)則前,您需要為指定Bucket開(kāi)啟訪問(wèn)跟蹤功能。關(guān)于基于最后一次訪問(wèn)時(shí)間的生命周期規(guī)則的代碼示例,請(qǐng)參見(jiàn)SDK簡(jiǎn)介

Java

import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSS;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.OSSException;
import com.aliyun.oss.model.*;
import java.util.ArrayList;
import java.util.List;

public class Demo {

    public static void main(String[] args) throws Exception {
        // Endpoint以華東1(杭州)為例,其它Region請(qǐng)按實(shí)際情況填寫。
        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
        // 從環(huán)境變量中獲取訪問(wèn)憑證。運(yùn)行本代碼示例之前,請(qǐng)確保已設(shè)置環(huán)境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // 填寫B(tài)ucket名稱,例如examplebucket。
        String bucketName = "examplebucket";

        // 創(chuàng)建OSSClient實(shí)例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider);

        try {
            ossClient.putBucketAccessMonitor(bucketName, AccessMonitor.AccessMonitorStatus.Enabled.toString());
            // 指定生命周期規(guī)則1。規(guī)則中指定前綴為logs,且小于等于64 KB的所有文件在距離最后一次訪問(wèn)時(shí)間30天后轉(zhuǎn)為低頻訪問(wèn)類型。且再次訪問(wèn)前綴為logs的文件時(shí),這些文件仍保留為低頻訪問(wèn)類型。
            LifecycleRule lifecycleRule = new LifecycleRule("rule1", "logs", LifecycleRule.RuleStatus.Enabled);
            List<LifecycleRule> lifecycleRuleList = new ArrayList<LifecycleRule>();
            SetBucketLifecycleRequest setBucketLifecycleRequest = new SetBucketLifecycleRequest(bucketName);

            LifecycleRule.StorageTransition storageTransition = new LifecycleRule.StorageTransition();
            storageTransition.setStorageClass(StorageClass.IA);
            storageTransition.setExpirationDays(30);
            storageTransition.setIsAccessTime(true);
            storageTransition.setReturnToStdWhenVisit(false);
            storageTransition.setAllowSmallFile(true);
            List<LifecycleRule.StorageTransition> storageTransitionList = new ArrayList<LifecycleRule.StorageTransition>();
            storageTransitionList.add(storageTransition);
            lifecycleRule.setStorageTransition(storageTransitionList);
            lifecycleRuleList.add(lifecycleRule);
            
            // 指定生命周期規(guī)則2。規(guī)則中指定前綴為dir,且大于64 KB的所有歷史版本文件在距離最后一次訪問(wèn)時(shí)間10天后轉(zhuǎn)為低頻訪問(wèn)類型。且再次訪問(wèn)前綴為dir的文件時(shí),這些文件將轉(zhuǎn)為標(biāo)準(zhǔn)存儲(chǔ)。
            LifecycleRule lifecycleRule2 = new LifecycleRule("rule2", "dir", LifecycleRule.RuleStatus.Enabled);
            LifecycleRule.NoncurrentVersionStorageTransition noncurrentVersionStorageTransition = new LifecycleRule.NoncurrentVersionStorageTransition();
            noncurrentVersionStorageTransition.setStorageClass(StorageClass.IA);
            noncurrentVersionStorageTransition.setNoncurrentDays(10);
            noncurrentVersionStorageTransition.setIsAccessTime(true);
            noncurrentVersionStorageTransition.setReturnToStdWhenVisit(true);
            noncurrentVersionStorageTransition.setAllowSmallFile(false);

            List<LifecycleRule.NoncurrentVersionStorageTransition> noncurrentVersionStorageTransitionList = new ArrayList<LifecycleRule.NoncurrentVersionStorageTransition>();
            noncurrentVersionStorageTransitionList.add(noncurrentVersionStorageTransition);
            lifecycleRule2.setNoncurrentVersionStorageTransitions(noncurrentVersionStorageTransitionList);
            lifecycleRuleList.add(lifecycleRule2);

            setBucketLifecycleRequest.setLifecycleRules(lifecycleRuleList);

            // 設(shè)置生命周期規(guī)則。
            ossClient.setBucketLifecycle(setBucketLifecycleRequest);
        } catch (OSSException oe) {
            System.out.println("Caught an OSSException, which means your request made it to OSS, "
                    + "but was rejected with an error response for some reason.");
            System.out.println("Error Message:" + oe.getErrorMessage());
            System.out.println("Error Code:" + oe.getErrorCode());
            System.out.println("Request ID:" + oe.getRequestId());
            System.out.println("Host ID:" + oe.getHostId());
        } catch (ClientException ce) {
            System.out.println("Caught an ClientException, which means the client encountered "
                    + "a serious internal problem while trying to communicate with OSS, "
                    + "such as not being able to access the network.");
            System.out.println("Error Message:" + ce.getMessage());
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
    }
}

Python

# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
from oss2.models import LifecycleRule, BucketLifecycle, StorageTransition, NoncurrentVersionStorageTransition

# 從環(huán)境變量中獲取訪問(wèn)憑證。運(yùn)行本代碼示例之前,請(qǐng)確保已設(shè)置環(huán)境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# yourEndpoint填寫B(tài)ucket所在地域?qū)?yīng)的Endpoint。以華東1(杭州)為例,Endpoint填寫為https://oss-cn-hangzhou.aliyuncs.com。
# 填寫B(tài)ucket名稱,例如examplebucket。
bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'examplebucket')

# 指定生命周期規(guī)則1。規(guī)則中指定前綴為logs,且大于64 KB的所有文件在距離最后一次訪問(wèn)時(shí)間30天后轉(zhuǎn)為低頻訪問(wèn)類型。且再次訪問(wèn)前綴為logs的文件時(shí),這些文件仍保留為低頻訪問(wèn)類型。
rule1 = LifecycleRule('rule1', 'logs', status=LifecycleRule.ENABLED)
rule1.storage_transitions = [StorageTransition(days=30, storage_class=oss2.BUCKET_STORAGE_CLASS_IA, is_access_time=True, return_to_std_when_visit=False, allow_small_file=True)]

# 指定生命周期規(guī)則2。規(guī)則中指定前綴為dir,且大于64 KB的所有歷史版本文件在距離最后一次訪問(wèn)時(shí)間10天后轉(zhuǎn)為低頻訪問(wèn)類型。且再次訪問(wèn)前綴為dir的文件時(shí),這些文件將轉(zhuǎn)為標(biāo)準(zhǔn)存儲(chǔ)。
rule2 = LifecycleRule('rule2', 'dir', status=LifecycleRule.ENABLED)
rule2.noncurrent_version_sotrage_transitions = [NoncurrentVersionStorageTransition(10, oss2.BUCKET_STORAGE_CLASS_IA, is_access_time=True, return_to_std_when_visit=True, allow_small_file=False)]

lifecycle = BucketLifecycle([rule1, rule2])

# 設(shè)置生命周期規(guī)則。
result = bucket.put_bucket_lifecycle(lifecycle)

print('設(shè)置生命周期成功,返回狀態(tài)為:' + str(result.status))

Go

package main

import (
	"fmt"
	"github.com/aliyun/aliyun-oss-go-sdk/oss"
	"os"
)

func main() {
	// yourBucketName填寫B(tài)ucket名稱。
	bucketName := "yourBucketName"

	// 從環(huán)境變量中獲取訪問(wèn)憑證。運(yùn)行本代碼示例之前,請(qǐng)確保已設(shè)置環(huán)境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	// 創(chuàng)建OSSClient實(shí)例。
	// yourEndpoint填寫B(tài)ucket對(duì)應(yīng)的Endpoint,以華東1(杭州)為例,填寫為https://oss-cn-hangzhou.aliyuncs.com。其它Region請(qǐng)按實(shí)際情況填寫。
	client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider))
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	isTrue := true
	isFalse := false
	// 指定生命周期規(guī)則1。規(guī)則中指定前綴為logs,且小于等于64 KB的所有文件在距離最后一次訪問(wèn)時(shí)間30天后轉(zhuǎn)為低頻訪問(wèn)類型。且再次訪問(wèn)前綴為logs的文件時(shí),這些文件仍保留為低頻訪問(wèn)類型。
	rule1 := oss.LifecycleRule{
		ID:     "rule1",
		Prefix: "logs",
		Status: "Enabled",
		Transitions: []oss.LifecycleTransition{
			{
				Days:                 30,
				StorageClass:         oss.StorageIA,
				IsAccessTime:         &isTrue,
				ReturnToStdWhenVisit: &isFalse,
				AllowSmallFile:       &isTrue,
			},
		},
	}
	// 指定生命周期規(guī)則2。規(guī)則中指定前綴為dir,且大于64 KB的所有歷史版本文件在距離最后一次訪問(wèn)時(shí)間10天后轉(zhuǎn)為低頻訪問(wèn)類型。且再次訪問(wèn)前綴為dir的文件時(shí),這些文件將轉(zhuǎn)為標(biāo)準(zhǔn)存儲(chǔ)。
	rule2 := oss.LifecycleRule{
		ID:     "rule2",
		Prefix: "dir",
		Status: "Enabled",
		NonVersionTransitions: []oss.LifecycleVersionTransition{
			{
				NoncurrentDays:       10,
				StorageClass:         oss.StorageIA,
				IsAccessTime:         &isTrue,
				ReturnToStdWhenVisit: &isTrue,
				AllowSmallFile:       &isFalse,
			},
		},
	}
	// 設(shè)置生命周期規(guī)則。
	var rules = []oss.LifecycleRule{rule1, rule2}
	err = client.SetBucketLifecycle(bucketName, rules)
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
	fmt.Printf("%s\n", "set bucket life cycle success")
}

使用命令行工具ossutil

關(guān)于使用ossutil設(shè)置生命周期規(guī)則的具體操作, 請(qǐng)參見(jiàn)添加或修改生命周期規(guī)則

使用REST API

如果您的程序自定義要求較高,您可以直接發(fā)起REST API請(qǐng)求。直接發(fā)起REST API請(qǐng)求需要手動(dòng)編寫代碼計(jì)算簽名。更多信息,請(qǐng)參見(jiàn)PutBucketLifecycle

常見(jiàn)問(wèn)題

如果針對(duì)Bucket內(nèi)相同前綴的Object創(chuàng)建了兩條生命周期規(guī)則,其中一條規(guī)則基于最后一次修改時(shí)間,另外一條規(guī)則基于最后一次訪問(wèn)時(shí)間,最終執(zhí)行效果會(huì)怎么樣?

例如,針對(duì)目標(biāo)存儲(chǔ)空間examplebucket創(chuàng)建了兩條生命周期規(guī)則,規(guī)則一指定該Bucket內(nèi)所有前綴為doc的Object在距離最后一次修改時(shí)間30天后刪除,規(guī)則二指定該Bucket內(nèi)所有前綴為doc的Object在距離最后一次訪問(wèn)時(shí)間30天后轉(zhuǎn)低頻訪問(wèn)類型。

由于OSS執(zhí)行生命周期規(guī)則時(shí)遵循以用戶較低開(kāi)銷為原則,因此僅規(guī)則一生效。原因是規(guī)則一中指定30天后直接刪除與前綴匹配的Object,此后將不再產(chǎn)生費(fèi)用。而規(guī)則二轉(zhuǎn)為低頻訪問(wèn)類型仍會(huì)收取相關(guān)存儲(chǔ)費(fèi)用或者數(shù)據(jù)取回費(fèi)用等。

已配置的生命周期規(guī)則變更后何時(shí)生效,原有規(guī)則命中的數(shù)據(jù)如何處理?

例如,您已經(jīng)針對(duì)前綴為er的Object配置了距離最后一次訪問(wèn)時(shí)間30天后轉(zhuǎn)低頻、又過(guò)了30天后當(dāng)Object被訪問(wèn)時(shí)選擇將其轉(zhuǎn)為標(biāo)準(zhǔn)存儲(chǔ)類型的生命周期規(guī)則。但是在距離最后一次訪問(wèn)時(shí)間的35天后,您將生命周期指定的前綴er變更為re,此時(shí)原有Object僅轉(zhuǎn)存為低頻訪問(wèn)類型,轉(zhuǎn)存為標(biāo)準(zhǔn)存儲(chǔ)類型的行為不生效。變更規(guī)則命中Object的最后一次訪問(wèn)時(shí)間也是從Bucket開(kāi)啟訪問(wèn)跟蹤時(shí)開(kāi)始統(tǒng)計(jì)。

在已開(kāi)啟版本控制的Bucket內(nèi)開(kāi)啟智能分層,Bucket內(nèi)不同版本的Object存儲(chǔ)層級(jí)如何分布?

在已開(kāi)啟版本控制Bucket內(nèi)的每一個(gè)Object都有唯一的版本ID,且不同版本ID的Object相互獨(dú)立。因此可能會(huì)出現(xiàn)歷史版本Object為低頻訪問(wèn)類型,但是最新版本Object為標(biāo)準(zhǔn)存儲(chǔ)類型的情況。

是否支持關(guān)閉訪問(wèn)跟蹤?

支持,前提是當(dāng)前Bucket不存在基于最后一次訪問(wèn)時(shí)間的生命周期規(guī)則。關(guān)閉訪問(wèn)跟蹤后,系統(tǒng)將停止追蹤Object的最后一次訪問(wèn)時(shí)間信息。待下一次開(kāi)啟訪問(wèn)跟蹤后,將重新刷新所有Object的最后一次訪問(wèn)時(shí)間。

相關(guān)文檔

最后一次訪問(wèn)時(shí)間(LastAccessTime)是Object的一個(gè)重要屬性,在計(jì)費(fèi)、生命周期規(guī)則等場(chǎng)景中均會(huì)涉及。在Bucket開(kāi)啟訪問(wèn)跟蹤后,部分針對(duì)Object的操作可能會(huì)更新Object的LastAccessTime,詳情請(qǐng)參見(jiàn)哪些操作會(huì)更新Object的LastAccessTime?