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)限。
名稱 | 類型 | 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。 |
名稱 | 類型 | 必選 | 描述 |
---|---|---|---|
Rule
|
Array of Rule objects | 是 |
名稱 | 類型 | 必選 | 描述 |
---|---|---|---|
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則必選。 |
名稱 | 類型 | 必選 | 描述 |
---|---|---|---|
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元素,則必選。 |
名稱 | 類型 | 必選 | 描述 |
---|---|---|---|
NoncurrentDays
|
integer | 否 |
表示對(duì)象在成為歷史版本之后第幾天時(shí)規(guī)則生效(僅針對(duì)歷史版本)。 如果有NoncurrentVersionExpiration或NoncurrentVersionTransition元素,則必選。 |
名稱 | 類型 | 必選 | 描述 |
---|---|---|---|
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 |
名稱 | 類型 | 必選 | 描述 |
---|---|---|---|
NoncurrentDays
|
integer | 否 |
表示對(duì)象在成為歷史版本之后第幾天時(shí)規(guī)則生效(僅針對(duì)歷史版本)。 |
StorageClass
|
string | 否 |
表示對(duì)象將被修改成存儲(chǔ)級(jí)別。 取值范圍: WARM或COLD |
名稱 | 類型 | 必選 | 描述 |
---|---|---|---|
DaysAfterInitiation
|
integer | 否 |
指定未合并的多段任務(wù)(碎片)的生命周期規(guī)則,在多段任務(wù)初始化過(guò)后多少天生效。 如果有AbortIncompleteMultipartUpload則必選。 |
成功請(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)題。 |
請(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源。 |