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

 

接口說(shuō)明

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

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

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

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

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

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

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

請(qǐng)求消息中可帶的簽名信息。

Date
 
string header

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

Content-MD5
 
string header

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

bucket_name
 
string query

請(qǐng)求的桶名稱。

lifecycle
 
string query

lifecycle表示請(qǐng)求桶聲明周期API。

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

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

Prefix
 
string

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

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

Status
 
string

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

Expiration
 
Expiration object

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

NoncurrentVersionExpiration
 
NoncurrentVersionExpiration object

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

Transition
 
Array of Transition objects

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

NoncurrentVersionTransition
 
Array of NoncurrentVersionTransition objects

生命周期配置中表示對(duì)象的歷史版本遷移時(shí)間和遷移后對(duì)象存儲(chǔ)級(jí)別的元素。

AbortIncompleteMultipartUpload
 
AbortIncompleteMultipartUpload object

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

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

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

如果沒(méi)有Days元素,則必選。

Days
 
integer

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

如果沒(méi)有Date元素,則必選。

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

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

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

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

如果沒(méi)有Days元素,則必選。

Days
 
integer

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

如果沒(méi)有Date元素,則必選。

StorageClass
 
string

表示對(duì)象將被修改成存儲(chǔ)級(jí)別。 取值范圍: WARM或COLD

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

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

StorageClass
 
string

表示對(duì)象將被修改成存儲(chǔ)級(jí)別。 取值范圍: WARM或COLD

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

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

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

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

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

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

Connection
 
string

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

Date
 
string

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

ETag
 
string

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

x-obs-id-2
 
string

幫助定位問(wèn)題的特殊符號(hào)。

x-obs-request-id
 
string

由OBS創(chuàng)建來(lái)唯一確定本次請(qǐng)求的值,可以通過(guò)該值來(lái)定位問(wèn)題。

返回碼: 400

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

名稱 類型 必選 描述
Code
 
string

錯(cuò)誤響應(yīng)消息體XML中錯(cuò)誤響應(yīng)對(duì)應(yīng)的HTTP消息返回碼,具體的錯(cuò)誤碼請(qǐng)參見(jiàn)錯(cuò)誤碼-表2

Message
 
string

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

RequestId
 
string

本次錯(cuò)誤請(qǐng)求的請(qǐng)求ID,用于錯(cuò)誤定位。

HostId
 
string

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

Resource
 
string

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

請(qǐng)求示例
示例 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"
錯(cuò)誤碼
請(qǐng)參考 錯(cuò)誤碼說(shuō)明。