上云无忧 > 文档中心 > 天翼云对象存储(OOS经典版)I型HTTP REST接口PUT Bucket Lifecycle
对象存储
天翼云对象存储(OOS经典版)I型HTTP REST接口PUT Bucket Lifecycle

文档简介:
此操作用来设置Bucket生命周期规则。只有根用户和具有PUT Bucket Lifecycle权限的子用户才能执行此操作。 生命周期是指对象从更新开始到被删除/转换存储类型的时间。 通过设置存储桶的生命周期规则,可以: 删除与生命周期规则匹配的对象。当对象的生命周期到期时,OOS会异步删除它们。
*产品来源:中国电信天翼云。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

PUT Bucket Lifecycle


此操作用来设置Bucket生命周期规则。只有根用户和具有PUT Bucket Lifecycle权限的子用户才能执行此操作。

生命周期是指对象从更新开始到被删除/转换存储类型的时间。

通过设置存储桶的生命周期规则,可以:

  • 删除与生命周期规则匹配的对象。当对象的生命周期到期时,OOS会异步删除它们。生命周期中配置的到期时间和实际删除时间之间可能会有一段延迟。但对象到期被删除后,用户将不需要为到期的对象付费。OOS删除到期对象后,会在Bucket log中记录一条日志,操作项是"OOS.EXPIRE.OBJECT"。

注意:如果对象的生命周期规则设置的是到期后删除,对象到期后将被永久删除,无法恢复。

  • 将与生命周期规则匹配的对象由标准存储转换为低频访问存储。OOS转换存储类型为低频访问存储后,会在access logs中记录一条日志,操作项是"OOS.TRANSITION_SIA.OBJECT"。


注意:

  • 如果Bucket没有配置过生命周期规则,执行该操作将创建新的生命周期规则;如果Bucket已存在相同名称的生命周期规则,则执行此操作将覆盖原有规则。
  • 每个Bucket最多创建100条生命周期规则。
  • 同一Bucket,同一类型(到期删除或者到期转成低频访问存储)的生命周期规则不能存在叠加前缀,例如已创建到期删除对象的生命周期规则的前缀是ABC,则无法再创建前缀为ABCD或AB或A的到期删除对象的生命周期规则。
  • 当用户为Bucket设置了生命周期规则,这些规则将同时应用于已有对象和后续新创建的对象。例如,用户今天增加了一个生命周期,指定某些前缀的对象30天后过期,那么OOS将会将满足条件的30天前创建的对象都加入到待删除队列中。

OOS通过将对象的创建时间加上生命周期时间来计算到期时间,并且将时间近似到下一天的GMT零点时间。例如,一个对象于GMT 2016年1月15日10:30创建,生命周期为3天,那么对象的到期时间是GMT 2016年1月19日00:00。当重写一个对象时,OOS将以最后更新时间为准,来重新计算该对象的到期时间。

可以通过GET Object、HEAD Object查询对象的到期时间。


请求语法

PUT /?lifecycle HTTP/1.1

Host: BucketName.oos-cn.ctyunapi.cn

Date: date

Authorization: signatureValue

Content-MD5: MD5

 

<LifecycleConfiguration>

       <Rule>

              <ID>UniqueIdentifier</ID>

              <Prefix>Prefix</Prefix>

              <Status>LifecycleStatus</Status>

              <Expiration>

                     <Days>NumberOfDays</Days>

              </Expiration>

</Rule>

</LifecycleConfiguration>

 

请求头

名称

描述

是否必需

Content-MD5

数据的base64编码的128位MD5。此请求头必填,以便校验数据的完整性。

请求元素

名称

描述

是否必需

LifecycleConfiguration

生命周期规则容器,最多包含100个规则。

类型:容器

子节点:Rule

父节点:无

Rule

配置一条生命周期规则的容器。

类型:容器

子节点:ID、Prefix、Status、Expiration、Transition

父节点:LifecycleConfiguration

ID

规则的唯一标识。

类型:字符串

父节点:Rule

取值:1~255个字符

Prefix

指定使用生命周期规则的对象前缀。只有匹配对象前缀的对象才能被该规则影响,且对于同一Bucket,同一类型的生命周期规则的前缀不可重叠。如果prefix为空,则默认生命周期规则匹配整个存储桶。

类型:字符串

父节点:Rule

取值:0~1024个字符

Status

指定生命周期规则的状态。

类型:字符串

父节点:Rule

取值:

l  Enabled:生命周期规则生效;

l  Disabled:生命周期规则不生效,OOS执行时会忽略该条规则。

Expiration

指定生命周期规则的过期时间容器。

类型:容器

子节点:Days或Date

父节点:Rule

Expiration和Transition至少包含1个

Transition

指定生命周期规则的转换存储类型。

类型:容器

子节点:Days或Date、StorageClass

父节点:Rule

Expiration和Transition至少包含一个

Days

指定生命周期规则在匹配对象创建多少天后生效。

注意:如果过期时间和转换时间同时配置,过期时间需要晚于转换时间。

类型:正整数

父节点:Expiration或Transition

取值:大于0的正整数

Days和Date二选一

Date

指定生命周期规则生效日期,OOS对在此日期之前创建的对象执行生命周期规则。在该生效时间,生成时间早于此时间的对象将被认为是过期对象。

日期格式必须为ISO8601格式,并且为UTC的零点。例如:2002-10-11T00:00:00.000Z。

类型:String

父节点:Expiration、Transition

Days和Date二选一

StorageClass

指定对象转换的存储类型。

类型:字符串

父节点:Transition

取值:

STANDARD_IA:低频访问存储。

Transition已设置时,必选。

 

请求示例

例子1:单一规则

下面的生命周期只包含一个规则,这个规则指定所有以logs/为前缀的对象将在创建后的30天过期。因为规则的状态是Enabled,OOS会每隔一段时间来评估这个规则,删除过期的对象。

PUT /?lifecycle   HTTP/1.1

Host: doc.oos-cn.ctyunapi.cn

Date: Tue, 13 Dec   2011 17:54:50 GMT

Content-MD5:   8dYiLewFWZyGgV2Q5FNI4W==

Authorization: AWS 7799e793ce4624ee7e5a:z6mvnXscCWad60vdmB9xZVVZn46=

Content-Length: 207

<LifecycleConfiguration>

       <Rule>

              <ID>delete-logs-in-30-days-rule</ID>

              <Prefix>logs</Prefix>

              <Status>Enabled</Status>

              <Expiration>

                     <Days>30</Days>

              </Expiration>

       </Rule>

</LifecycleConfiguration>

 

返回示例

HTTP/1.1 200OK

x-amz-request-id: 32FE2CEB32F5EE25

Date: Tue, 13 Dec 2011 19:14:41 GMT

Connection: close

Server: CTYUN

示例2:设置存储类型转换

指定存储对在创建10天后转换为低频访问存储,创建20天后删除。

请求示例

PUT /?lifecycle   HTTP/1.1

Host:   ctyuntest0625.oos-cn.ctyunapi.cn

Authorization: AWS AKIAIM6KGTNKZKF4ETLA:fWuioDnZ3Cc1cXPWu8x5MEWglLg=

Date: Mon, 29 Jul   2019 05:08:31 GMT

Content-Type:   application/xml

Content-MD5:   ouPJihB832ZHNLZNyl2Ccw==

Content-Length: 175

 

<LifecycleConfiguration>

       <Rule>

              <Prefix>logs</Prefix>

              <Status>Enabled</Status>

              <Transition>

                     <Days>10</Days>

                     <StorageClass>STANDARD_IA</StorageClass>

              </Transition>

              <Expiration>

                     <Days>20</Days>

              </Expiration>

       </Rule>

</LifecycleConfiguration>

 

返回示例

HTTP/1.1 200OK

x-amz-request-id: 32FE2CEB32F5EE25

Date: Mon, 29 Jul 2019 05:10:33 GMT

Connection: close

Server: CTYUN

 

例子3:定义所有对象的规则

下面的规则指定所有对象将在创建后的3650天被删除。

注意:当指定空的前缀时,规则将对bucket内的所有对象生效。OOS将会删除满足此规则的所有对象。

PUT /?lifecycle   HTTP/1.1

Host: doc.oos-cn.ctyunapi.cn

Date: Tue, 13 Dec   2011 17:54:50 GMT

Content-MD5:   8dYiLewFWZyGgV2Q5FNI4W==

Authorization: AWS  

7799e793ce4624ee7e5a:z6mvnXscCWad60vdmB9xZVVZn46=

Content-Length: 226

 

<LifecycleConfiguration>

       <Rule>

              <ID>10 years all objects   expire rule </ID>

              <Prefix></Prefix>

              <Status>Enabled</Status>

              <Expiration>

                     <Days>3650</Days>

              </Expiration>

       </Rule>

</LifecycleConfiguration>

 

返回示例

HTTP/1.1 200OK

x-amz-request-id: BDC4B83DF5096BBE

Date:Tue, 13 Dec 2011 19:14:41 GMT

Connection: close

Server: CTYUN

例子4:定义所有对象的生命周期规则

在设置多个规则时,请注意各规则之间不要互相冲突。比如,下面的生命周期中配置了一个规则,指定所有以documents为前缀的对象在30天后过期。而另一个规则指定所有以documents/2011为前缀的对象在365天过期。在这种情况下,OOS将返回错误信息。

PUT /?lifecycle   HTTP/1.1

Host: doc.oos-cn.ctyunapi.cn

Date: Tue, 13 Dec   2011 17:54:50 GMT

Authorization: AWS   

7799e793ce4624ee7e5a:z6mvnXscCWad60vdmB9xZVVZn46=

Content-MD5: 8dYiLewFWZyGgV2Q5FNI4W==

Content-Length: 226

 

<LifecycleConfiguration>

       <Rule>

              <ID>111</ID>

              <Prefix>documents</Prefix>

              <Status>Enabled</Status>

              <Expiration>

                     <Days>30</Days>

              </Expiration>

       </Rule>

       <Rule>

              <ID>222</ID>

              <Prefix>documents/2011</Prefix>

              <Status>Enabled</Status>

              <Expiration>

                     <Days>365</Days>

              </Expiration>

       </Rule>

</LifecycleConfiguration>

相似文档
  • 此接口用于返回配置的bucket生命周期。 请求语法 GET /?lifecycle HTTP/1.1 Host: BucketName.oos-cn.ctyunapi.cn Date: date Authorization: signatureValue
  • 此接口用于删除配置的Bucket生命周期,OOS将会删除指定Bucket的所有生命周期配置规则。用户的对象将永远不会到期,OOS也不会再自动删除对象。只有根用户和拥有DELETE Bucket Lifecycle权限的子用户才能执行此操作。 请求语法 DELETE /?lifecycle HTTP/1.1 Host: BucketName.oos-cn.ctyunapi.cn Date: date Authorization: signatureValue
  • 在PUT操作的url中加上accelerate,可以进行添加或修改CDN IP白名单的操作。如果Bucket已经配置了CDN加速,此操作会替换原有配置。只有根用户和PUT Bucket accelerate的子用户才能执行此操作,否则会返回403 AccessDenied错误。一个bucket最多配置5个IP白名单地址段。
  • 在GET操作的url中加上accelerate,可以获得指定Bucket的CDN配置信息。只有根用户和拥有GET Bucket acclerate权限的子用户才能执行此操作,否则会返回403 AccessDenied错误。 如果Bucket没有配置过CDN加速,那么将不会返回状态信息。
  • 跨域资源共享 (Cross-Origin Resource Sharing,CORS) 定义了客户端 Web 应用程序在一个域中与另一个域中的资源进行交互的方式,是浏览器出于安全考虑而设置的一个限制,即同源策略。例如,当来自于A网站的页面中的JavaScript代码希望访问B网站的时候,浏览器会拒绝该访问,因为A、B两个网站是属于不同的域。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部