華為云計算 云知識 設(shè)置桶的生命周期配置SetBucketLifecycle
設(shè)置桶的生命周期配置SetBucketLifecycle

 

接口說明

OBS系統(tǒng)支持指定規(guī)則來實現(xiàn)定時刪除或 遷移 桶中對象,這就是生命周期配置。典型的應(yīng)用場景如: 周期性上傳的日志文件,可能只需要保留一個星期或一個月,到期后要刪除它們。 某些文檔在一段時間內(nèi)經(jīng)常訪問,但是超過一定時間后就可能不會再訪問了。這種文檔您可能會先選擇歸檔,然后在一定時間后刪除。 桶的最低轉(zhuǎn)溫和轉(zhuǎn)冷的時間可以配置,取值范圍為24~8640。

本接口實現(xiàn)為桶創(chuàng)建或更新生命周期配置信息。

說明: 對象生命周期到期以后,對象將會永久刪除,無法恢復(fù)。

要正確執(zhí)行此操作,需要確保執(zhí)行者有PutLifecycleConfiguration權(quán)限。默認(rèn)情況下只有桶的所有者可以執(zhí)行此操作,也可以通過設(shè)置桶策略或用戶策略授權(quán)給其他用戶。

生命周期配置實現(xiàn)了定時刪除對象和定時遷移對象的功能,所以如果想要阻止用戶刪除或遷移對象,以下幾項操作的權(quán)限都應(yīng)該被禁止:

DeleteObject DeleteObjectVersion PutLifecycleConfiguration 如果想要阻止用戶管理桶的生命周期配置,應(yīng)該禁止PutLifecycleConfiguration權(quán)限。

URL
PUT  https://obs.af-south-1.myhuaweicloud.com/ 
請求參數(shù)
名稱 類型 IN 必選 描述
Authorization
 
string header

請求消息中可帶的簽名信息。

Date
 
string header

請求發(fā)起端的日期和時間,例如:Wed, 27 Jun 2018 13:39:15 +0000。 默認(rèn)值:無。 條件:如果消息頭中帶了x-obs-date字段,則可以不帶該字段,其他情況下必選。

Content-MD5
 
string header

按照RFC 1864標(biāo)準(zhǔn)計算出消息體的MD5摘要字符串,即消息體128-bit MD5值經(jīng)過base64編碼后得到的字符串。也支持設(shè)置Content-SHA256頭域,其值為消息體256-bit SHA256值經(jīng)過base64編碼后得到的字符串,Content-MD5和Content-SHA256二選一。 示例:n58IG6hfM7vqI4K0vnWpog==

bucket_name
 
string query

請求的桶名稱。

lifecycle
 
string query

lifecycle表示請求桶聲明周期API。

Body參數(shù)
名稱 類型 必選 描述
Rule
 
Array of Rule objects  
參數(shù):
Rule
名稱 類型 必選 描述
ID
 
string

一條Rule的標(biāo)識,由不超過255個字符的字符串組成。

Prefix
 
string

對象名前綴,用以標(biāo)識哪些對象可以匹配到當(dāng)前這條Rule。

約束: 1.當(dāng)按前綴配置時,如果指定的前綴名與某條已配置的生命周期規(guī)則指定的前綴名存在包含關(guān)系,OBS會將兩條規(guī)則視為同一條,而禁止您配置本條規(guī)則。例如,系統(tǒng)中已存在指定前綴名為“abc”的規(guī)則,則不允許再配置指定前綴以“abc”字段開頭的規(guī)則。 2.如果已存在按前綴配置的生命周期規(guī)則,則不允許再新增配置到整個桶的規(guī)則。

Status
 
string

標(biāo)識當(dāng)前這條Rule是否啟用。

Expiration
 
Expiration object

生命周期配置中表示過期時間的Container(僅針對對象的最新版本)。 如果沒有Transition, NoncurrentVersionTransition, NoncurrentVersionExpiration, AbortIncompleteMultipartUpload則必選。

NoncurrentVersionExpiration
 
NoncurrentVersionExpiration object

生命周期配置中表示歷史版本過期時間的Container。您可以將該動作設(shè)置在已啟用多版本(或暫停)的桶,來讓系統(tǒng)刪除對象的滿足特定生命周期的歷史版本(僅針對歷史版本)。

Transition
 
Array of Transition objects

生命周期配置中表示遷移時間和遷移后 對象存儲 級別的元素(僅針對對象的最新版本)。 如果沒有NoncurrentVersionTransition, Expiration, NoncurrentVersionExpiration, AbortIncompleteMultipartUpload則必選。

NoncurrentVersionTransition
 
Array of NoncurrentVersionTransition objects

生命周期配置中表示對象的歷史版本遷移時間和遷移后對象存儲級別的元素。

AbortIncompleteMultipartUpload
 
AbortIncompleteMultipartUpload object

生命周期配置中表示未合并的多段任務(wù)(碎片)的過期屬性Container。 如果沒有Transition, Expiration, NoncurrentVersionExpiration, NoncurrentVersionTransition則必選。

參數(shù):
Rule.Expiration
名稱 類型 必選 描述
Date
 
string

指定OBS對該日期之前的對象執(zhí)行生命周期規(guī)則。日期格式必須為ISO8601的格式,并且為UTC的零點。 例如:2018-01-01T00:00:00.000Z,表示將最后修改時間早于2018-01-01T00:00:00.000Z的對象刪除或轉(zhuǎn)換成其他存儲類型,等于或晚于這個時間的對象不會被刪除或轉(zhuǎn)儲。

如果沒有Days元素,則必選。

Days
 
integer

指定生命周期規(guī)則在對象最后更新過后多少天生效(僅針對對象的最新版本)。

如果沒有Date元素,則必選。

參數(shù):
Rule.NoncurrentVersionExpiration
名稱 類型 必選 描述
NoncurrentDays
 
integer

表示對象在成為歷史版本之后第幾天時規(guī)則生效(僅針對歷史版本)。 如果有NoncurrentVersionExpiration或NoncurrentVersionTransition元素,則必選。

參數(shù):
Rule.Transition
名稱 類型 必選 描述
Date
 
string

指定OBS對該日期之前的對象執(zhí)行生命周期規(guī)則。日期格式必須為ISO8601的格式,并且為UTC的零點。 例如:2018-01-01T00:00:00.000Z,表示將最后修改時間早于2018-01-01T00:00:00.000Z的對象刪除或轉(zhuǎn)換成其他存儲類型,等于或晚于這個時間的對象不會被刪除或轉(zhuǎn)儲。

如果沒有Days元素,則必選。

Days
 
integer

指定生命周期規(guī)則在對象最后更新過后多少天生效(僅針對對象的最新版本)。

如果沒有Date元素,則必選。

StorageClass
 
string

表示對象將被修改成存儲級別。 取值范圍: WARM或COLD

參數(shù):
Rule.NoncurrentVersionTransition
名稱 類型 必選 描述
NoncurrentDays
 
integer

表示對象在成為歷史版本之后第幾天時規(guī)則生效(僅針對歷史版本)。

StorageClass
 
string

表示對象將被修改成存儲級別。 取值范圍: WARM或COLD

參數(shù):
Rule.AbortIncompleteMultipartUpload
名稱 類型 必選 描述
DaysAfterInitiation
 
integer

指定未合并的多段任務(wù)(碎片)的生命周期規(guī)則,在多段任務(wù)初始化過后多少天生效。 如果有AbortIncompleteMultipartUpload則必選。

返回參數(shù)
返回碼: 200

成功請求響應(yīng)。

名稱 類型 必選 描述
Content-Length
 
string

響應(yīng)消息體的字節(jié)長度。

Connection
 
string

指明與服務(wù)器的連接是長連接還是短連接。

Date
 
string

OBS系統(tǒng)響應(yīng)的時間。

ETag
 
string

對象的base64編碼的128位MD5摘要。ETag是對象內(nèi)容的唯一標(biāo)識,可以通過該值識別對象內(nèi)容是否有變化。比如上傳對象時ETag為A,下載對象時ETag為B,則說明對象內(nèi)容發(fā)生了變化。實際的ETag是對象的哈希值。ETag只反映變化的內(nèi)容,而不是其元數(shù)據(jù)。上傳的對象或拷貝操作創(chuàng)建的對象,通過MD5加密后都有唯一的ETag。如果通過多段上傳對象,則無論加密方法如何,MD5會拆分ETag,此類情況ETag就不是MD5的摘要。

x-obs-id-2
 
string

幫助定位問題的特殊符號。

x-obs-request-id
 
string

由OBS創(chuàng)建來唯一確定本次請求的值,可以通過該值來定位問題。

返回碼: 400

請求失敗響應(yīng)消息。

名稱 類型 必選 描述
Code
 
string

錯誤響應(yīng)消息體XML中錯誤響應(yīng)對應(yīng)的HTTP消息返回碼,具體的錯誤碼請參見錯誤碼-表2。

Message
 
string

錯誤響應(yīng)消息體XML中具體錯誤更全面、詳細(xì)的英文解釋,具體的錯誤消息請參見錯誤碼-表2。

RequestId
 
string

本次錯誤請求的請求ID,用于錯誤定位。

HostId
 
string

返回該消息的服務(wù)端ID。

Resource
 
string

該錯誤相關(guān)的桶或?qū)ο筚Y源。

請求示例
示例 1
 
"/?lifecycle"
 
"PUT /?lifecycle HTTP/1.1\nUser-Agent: curl/7.29.0\nHost: examplebucket.obs.cn-north-4.myhuaweicloud.com\nAccept: */*\nDate: WED, 01 Jul 2015 03:05:34 GMT\nAuthorization: OBS H4IPJX0TQTHTHEBQQCEC:DpSAlmLX/BTdjxU5HOEwflhM0WI=\nContent-MD5: ujCZn5p3fmczNiQQxdsGaQ==\nContent-Length: 919\n\n<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<LifecycleConfiguration> \n <Rule> \n <ID>delete-2-days</ID> \n <Prefix>test/</Prefix> \n <Status>Enabled</Status> \n <Expiration> \n <Days>70</Days> \n </Expiration> \n <NoncurrentVersionExpiration> \n <NoncurrentDays>70</NoncurrentDays> \n </NoncurrentVersionExpiration>\n <Transition> \n <Days>30</Days> \n <StorageClass>WARM</StorageClass> \n </Transition> \n <Transition> \n <Days>60</Days> \n <StorageClass>COLD</StorageClass> \n </Transition> \n <NoncurrentVersionTransition> \n <NoncurrentDays>30</NoncurrentDays> \n <StorageClass>WARM</StorageClass> \n </NoncurrentVersionTransition> \n <NoncurrentVersionTransition> \n <NoncurrentDays>60</NoncurrentDays> \n <StorageClass>COLD</StorageClass> \n </NoncurrentVersionTransition> \n <AbortIncompleteMultipartUpload>\n <DaysAfterInitiation>10</DaysAfterInitiation>\n </AbortIncompleteMultipartUpload>\n </Rule>\n</LifecycleConfiguration>\n"
錯誤碼
請參考 錯誤碼說明。