计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
弹性伸缩 AS
镜像服务 IMS
专属主机 DeH
函数工作流 FunctionGraph
云手机服务器 CPH
Huawei Cloud EulerOS
网络
虚拟私有云 VPC
弹性公网IP EIP
虚拟专用网络 VPN
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
VPC终端节点 VPCEP
云连接 CC
企业路由器 ER
企业交换机 ESW
全球加速 GA
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
边缘安全 EdgeSec
态势感知 SA
威胁检测服务 MTD
CDN与智能边缘
内容分发网络 CDN
CloudPond云服务
智能边缘云 IEC
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
云搜索服务 CSS
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
数据可视化 DLV
数据湖工厂 DLF
湖仓构建 LakeFormation
企业应用
云桌面 Workspace
应用与数据集成平台 ROMA Connect
云解析服务 DNS
专属云
专属计算集群 DCC
IoT物联网
IoT物联网
设备接入 IoTDA
智能边缘平台 IEF
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
国际站常见问题
ICP备案
我的凭证
支持计划
客户运营能力
合作伙伴支持计划
专业服务
区块链
区块链服务 BCS
Web3节点引擎服务 NES
解决方案
SAP
高性能计算 HPC
视频
视频直播 Live
视频点播 VOD
媒体处理 MPC
实时音视频 SparkRTC
数字内容生产线 MetaStudio
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
存储容灾服务 SDRS
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
专属分布式存储服务 DSS
容器
云容器引擎 CCE
容器镜像服务 SWR
应用服务网格 ASM
华为云UCS
云容器实例 CCI
管理与监管
云监控服务 CES
统一身份认证服务 IAM
资源编排服务 RFS
云审计服务 CTS
标签管理服务 TMS
云日志服务 LTS
配置审计 Config
资源访问管理 RAM
消息通知服务 SMN
应用运维管理 AOM
应用性能管理 APM
组织 Organizations
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
应用身份管理服务 OneAccess
数据库
云数据库 RDS
文档数据库服务 DDS
数据管理服务 DAS
数据复制服务 DRS
云数据库 GeminiDB
云数据库 GaussDB
分布式数据库中间件 DDM
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
人脸识别服务 FRS
图引擎服务 GES
图像识别 Image
内容审核 Moderation
文字识别 OCR
AI开发平台ModelArts
图像搜索 ImageSearch
对话机器人服务 CBS
华为HiLens
视频智能分析服务 VIAS
语音交互服务 SIS
应用中间件
分布式缓存服务 DCS
API网关 APIG
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
多活高可用服务 MAS
事件网格 EG
企业协同
华为云会议 Meeting
云通信
消息&短信 MSGSMS
云生态
合作伙伴中心
云商店
开发者工具
SDK开发指南
API签名指南
Terraform
华为云命令行工具服务 KooCLI
其他
产品价格详情
系统权限
管理控制台
客户关联华为云合作伙伴须知
消息中心
公共问题
开发与运维
应用管理与运维平台 ServiceStage
软件开发生产线 CodeArts
需求管理 CodeArts Req
部署 CodeArts Deploy
性能测试 CodeArts PerfTest
编译构建 CodeArts Build
流水线 CodeArts Pipeline
制品仓库 CodeArts Artifact
测试计划 CodeArts TestPlan
代码检查 CodeArts Check
代码托管 CodeArts Repo
云应用引擎 CAE
开天aPaaS
云消息服务 KooMessage
云手机服务 KooPhone
云空间服务 KooDrive

设置桶的生命周期配置

更新时间:2024-09-29 GMT+08:00

功能介绍

OBS系统支持指定规则来实现定时删除或迁移桶中对象,这就是生命周期配置。典型的应用场景如:

  • 周期性上传的日志文件,可能只需要保留一个星期或一个月,到期后要删除它们。
  • 某些文档在一段时间内经常访问,但是超过一定时间后就可能不会再访问了。这种文档您可能会先选择归档,然后在一定时间后删除。
  • 桶的最低转低频访问和转归档的时间可以配置,取值范围为24~8640。

本接口实现为桶创建或更新生命周期配置信息。

说明:
  • 对象生命周期到期以后,对象将会永久删除,无法恢复。
  • 归档存储和深度归档存储不支持多AZ,因此不支持使用生命周期的存储类别转换功能,将多AZ的桶或对象转化为归档或深度归档存储。

要正确执行此操作,需要确保执行者有PutLifecycleConfiguration权限。默认情况下只有桶的所有者可以执行此操作,也可以通过设置桶策略或用户策略授权给其他用户。

生命周期配置实现了定时删除对象和定时迁移对象的功能,所以如果想要阻止用户删除或迁移对象,以下几项操作的权限都应该被禁止:

  • DeleteObject
  • DeleteObjectVersion
  • PutLifecycleConfiguration

如果想要阻止用户管理桶的生命周期配置,应该禁止PutLifecycleConfiguration权限。

请求消息样式

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
PUT /?lifecycle HTTP/1.1 
Host: bucketname.obs.region.myhuaweicloud.com 
Content-Length: length
Date: date
Authorization: authorization
Content-SHA256: SHA256
<?xml version="1.0" encoding="UTF-8"?> 
<LifecycleConfiguration> 
    <Rule> 
        <ID>id</ID> 
        <Prefix>prefix</Prefix> 
        <Status>status</Status> 
        <Expiration> 
            <Days>days</Days> 
        </Expiration> 
        <NoncurrentVersionExpiration> 
            <NoncurrentDays>days</NoncurrentDays> 
        </NoncurrentVersionExpiration> 
        <Transition>  
         <Days>30</Days>  
          <StorageClass>WARM</StorageClass>  
        </Transition>  
        <Transition>  
         <Days>60</Days>  
         <StorageClass>COLD</StorageClass>  
        </Transition>  
        <NoncurrentVersionTransition>  
         <NoncurrentDays>30</NoncurrentDays>  
         <StorageClass>WARM</StorageClass>  
        </NoncurrentVersionTransition>  
        <NoncurrentVersionTransition>  
         <NoncurrentDays>60</NoncurrentDays>  
         <StorageClass>COLD</StorageClass>  
        </NoncurrentVersionTransition>  
        <AbortIncompleteMultipartUpload>
            <DaysAfterInitiation>10</DaysAfterInitiation>
        </AbortIncompleteMultipartUpload>
    </Rule> 
</LifecycleConfiguration>

请求消息参数

该请求消息中不使用消息参数。

请求消息头

该请求使用的消息头如下表1所示。

表1 请求消息头

消息头名称

描述

是否必选

Content-SHA256

按SHA安全加密标准计算出消息体的SHA256摘要字符串,即消息体256-bit SHA256值经过base64编码后得到的字符串。

类型:String

示例:ogX9qClMrVJUBiUSIKDFM0qO41jJM0I5SCN55/OtMyI=

请求消息元素

在此请求中,需要在请求的消息体中配置桶的生命周期配置信息。配置信息以XML格式上传,具体的配置元素如表2描述。

  • 如果桶的多版本是Enabled或者Suspended,那么可以设置NoncurrentVersionTransition或NoncurrentVersionExpiration来控制对象的历史版本的生命周期。一个历史版本的生命周期,取决于它成为历史版本的时刻(即被新版本覆盖的那个时刻)和NoncurrentDays。对于删除来说,例如NoncurrentDays配置为1的话,表示当一个版本成为历史版本之后,再过1天才能删除。对象A的版本V1创建于1号,5号的时候又上传新的版本V2,此时V1成为历史版本,那么再过1天,7号的0点,V1就过期了。如果该版本不满足删除,迁移配置NoncurrentDays为1,StorageClass为WARM的话,表示当一个版本成为历史版本之后,再过1天转为低频访问对象。对象A的版本V1创建于1号,5号的时候又上传新的版本V2,此时V1成为历史版本,那么再过1天,7号的0点,V1就会迁移成低频访问对象了。(备注:对象过期后被删除或对象迁移的时间可能会有一定的延迟,一般不超过48小时。)
  • 如果桶的多版本是Enabled或者Suspended,且最新版本对象满足Expiration规则时的处理:
    • 桶当前的多版本状态为Enabled:

      如果对象的最新版本不是deletemarker,则该对象会产生一个新的deletemarker;

      如果最新版本是deletemarker,且该对象只有这一个版本,则这个版本会被删除;

      如果最新版本是deletemarker,且对象还有其他版本,则该对象的所有版本维持不变,没有新增和删除,也不会被修改(即无任何变化)。

    • 桶当前的多版本状态为Suspended:

      如果对象的最新版本不是deletemarker,且版本不是null版本,则会产生一个新的null版本的deletemarker;

      如果对象的最新版本不是deletemarker,且版本是null版本,则这个null版本会被新产生的null版本的deletemarker覆盖;

      如果最新版本是deletemarker,且该对象只有这一个版本,则这个版本会被删除;

      如果最新版本是deletemarker,且对象还有其他版本,则该对象的所有版本维持不变,没有新增和删除,也不会被修改(即无任何变化)。

  • 如果桶的多版本是Enabled或者Suspended,且最新版本对象满足Transition规则时的处理:
    • 如果对象的最新版本是deletemarker,则这个版本不被迁移;
    • 如果最新版本不是deletemarker,且该对象满足迁移条件,则这个版本会被迁移。
表2 生命周期配置元素

名称

描述

是否必选

Date

指定OBS对该日期之前的对象执行生命周期规则。日期格式必须为ISO8601的格式,并且为UTC的零点。 例如:2018-01-01T00:00:00.000Z,表示将最后修改时间早于2018-01-01T00:00:00.000Z的对象删除或转换成其他存储类型,等于或晚于这个时间的对象不会被删除或转储。

类型:String

父节点:Expiration, Transition

如果没有Days元素,则必选

Days

指定生命周期规则在对象最后更新过后多少天生效(仅针对对象的最新版本)。

类型:Integer

父节点:Expiration, Transition

如果没有Date元素,则必选

StorageClass

表示对象将被修改成存储级别。

类型:String

取值范围: WARM、COLD或DEEP_ARCHIVE

父节点:Transition, NoncurrentVersionTransition

如果有Transition或NoncurrentVersionTransition元素,则必选

Transition

生命周期配置中表示迁移时间和迁移后对象存储级别的元素(仅针对对象的最新版本)

类型:XML

子节点:Date或Days,StorageClass

父节点:Rule

如果没有NoncurrentVersionTransition, Expiration, NoncurrentVersionExpiration, AbortIncompleteMultipartUpload则必选

Expiration

生命周期配置中表示过期时间的Container(仅针对对象的最新版本)。

类型:XML

子节点:Date或Days

父节点:Rule

如果没有Transition, NoncurrentVersionTransition, NoncurrentVersionExpiration, AbortIncompleteMultipartUpload则必选

ID

一条Rule的标识,由不超过255个字符的字符串组成。

类型:String

父节点:Rule

LifecycleConfiguration

生命周期配置Rule的Container。可以配置多条Rule,但需保证整个配置消息体总大小不超过20KB。

类型:XML

子节点:Rule

父节点:无

NoncurrentDays

表示对象在成为历史版本之后第几天时规则生效(仅针对历史版本)。

类型:Integer

父节点:NoncurrentVersionExpiration, NoncurrentVersionTransition

如果有NoncurrentVersionExpiration或NoncurrentVersionTransition元素,则必选

NoncurrentVersionTransition

生命周期配置中表示对象的历史版本迁移时间和迁移后对象存储级别的元素。

类型:XML

子节点:NoncurrentDays, StorageClass

父节点:Rule

如果没有Transition, Expiration, NoncurrentVersionExpiration, AbortIncompleteMultipartUpload则必选

NoncurrentVersionExpiration

生命周期配置中表示历史版本过期时间的Container。您可以将该动作设置在已启用多版本(或暂停)的桶,来让系统删除对象的满足特定生命周期的历史版本(仅针对历史版本)。

类型:XML

子节点:NoncurrentDays

父节点:Rule

AbortIncompleteMultipartUpload

生命周期配置中表示未合并的多段任务(碎片)的过期属性Container。

类型:XML

子节点:DaysAfterInitiation

父节点:Rule

如果没有Transition, Expiration, NoncurrentVersionExpiration, NoncurrentVersionTransition则必选

DaysAfterInitiation

指定未合并的多段任务(碎片)的生命周期规则,在多段任务初始化过后多少天生效。

类型:Integer

父节点:AbortIncompleteMultipartUpload

如果有AbortIncompleteMultipartUpload则必选

Prefix

对象名前缀,用以标识哪些对象可以匹配到当前这条Rule。

类型:String

父节点:Rule

约束:

  1. 当按前缀配置时,如果指定的前缀名与某条已配置的生命周期规则指定的前缀名存在包含关系,OBS会将两条规则视为同一条,而禁止您配置本条规则。例如,系统中已存在指定前缀名为“abc”的规则,则不允许再配置指定前缀以“abc”字段开头的规则。
  2. 如果已存在按前缀配置的生命周期规则,则不允许再新增配置到整个桶的规则。

Rule

具体某一条生命周期配置的Container。

类型:Container

父节点:LifecycleConfiguration

Status

标识当前这条Rule是否启用。

类型:String

父节点:Rule

有效值:Enabled,Disabled

响应消息样式

1
2
3
HTTP/1.1 status_code
Date: date
Content-Length: length

响应消息头

该请求的响应消息使用公共消息头,具体请参考表1

响应消息元素

该请求的响应消息不带消息元素。

错误响应消息

无特殊错误,所有错误已经包含在表2中。

请求示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
PUT /?lifecycle HTTP/1.1
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com
Accept: */*
Date: WED, 01 Jul 2015 03:05:34 GMT
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:DpSAlmLX/BTdjxU5HOEwflhM0WI=
Content-SHA256: ogX9qClMrVJUBiUSIKDFM0qO41jJM0I5SCN55/OtMyI=
Content-Length: 919

<?xml version="1.0" encoding="utf-8"?>
<LifecycleConfiguration> 
  <Rule> 
    <ID>delete-2-days</ID>  
    <Prefix>test/</Prefix>  
    <Status>Enabled</Status>  
    <Expiration> 
      <Days>70</Days> 
    </Expiration>  
    <NoncurrentVersionExpiration> 
      <NoncurrentDays>70</NoncurrentDays> 
    </NoncurrentVersionExpiration>
    <Transition> 
      <Days>30</Days>  
      <StorageClass>WARM</StorageClass> 
    </Transition>  
    <Transition> 
      <Days>60</Days>  
      <StorageClass>COLD</StorageClass> 
    </Transition>  
    <NoncurrentVersionTransition> 
      <NoncurrentDays>30</NoncurrentDays>  
      <StorageClass>WARM</StorageClass> 
    </NoncurrentVersionTransition>  
    <NoncurrentVersionTransition> 
      <NoncurrentDays>60</NoncurrentDays>  
      <StorageClass>COLD</StorageClass> 
    </NoncurrentVersionTransition> 
    <AbortIncompleteMultipartUpload>
        <DaysAfterInitiation>10</DaysAfterInitiation>
    </AbortIncompleteMultipartUpload>
  </Rule>
</LifecycleConfiguration>

响应示例

1
2
3
4
5
6
HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: BF26000001643670AC06E7B9A7767921
x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSvK6z8HV6nrJh49gsB5vqzpgtohkiFm
Date: WED, 01 Jul 2015 03:05:34 GMT
Content-Length: 0

请求示例:基于最后一次修改时间策略仅执行转换文件存储类型操作

PUT /?lifecycle HTTP/1.1
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:iqSPeUBl66PwXDApxjRKk6hlcN4=
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com
Date: WED, 01 Jul 2015 02:37:22 GMT
Content-Type: application/xml
Content-MD5: b67aDumlm/b+5iev6+sRYw==
 
<LifecycleConfiguration>
    <Rule>
        <ID>delete-2-days</ID>
        <Prefix>test/</Prefix>
        <Status>Enabled</Status>
        <Transition>
            <Days>30</Days>
            <StorageClass>WARM</StorageClass>
        </Transition>
        <Transition>
            <Days>60</Days>
            <StorageClass>COLD</StorageClass>
        </Transition>
    </Rule>
</LifecycleConfiguration>

响应示例:基于最后一次修改时间策略仅执行转换文件存储类型操作

x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSZbDadL1f7fYU44bvRLvc0l6D10+wzG
x-obs-request-id: 0000018A2BCBB3ABD3046B99E3ED2E30
Server: OBS
Content-Length: 0
Date: WED, 01 Jul 2015 02:37:22 GMT

请求示例:基于最后一次修改时间策略仅执行删除文件操作

PUT /?lifecycle HTTP/1.1
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:iqSPeUBl66PwXDApxjRKk6hlcN4=
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com
Date: WED, 01 Jul 2015 02:37:22 GMT
Content-Type: application/xml
Content-MD5: tt0IizQ7YSTFtMJ3sie6qA==
 
<LifecycleConfiguration>
    <Rule>
        <ID>delete-2-days</ID>
        <Prefix>test/</Prefix>
        <Status>Enabled</Status>
        <Expiration>
            <Days>70</Days>
        </Expiration>
    </Rule>
</LifecycleConfiguration>

响应示例:基于最后一次修改时间策略仅执行删除文件操作

x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSfpG6nArWY7cM7rB3+GbvO13XJPx9g4
x-obs-request-id: 0000018A2BD6BB02D30426F6E4A1FBA2
Server: OBS
Content-Length: 0
Date: WED, 01 Jul 2015 02:37:22 GMT

请求示例:基于最后一次修改时间执行转换文件存储类型以及删除操作

PUT /?lifecycle HTTP/1.1
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:iqSPeUBl66PwXDApxjRKk6hlcN4=
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com
Date: WED, 01 Jul 2015 02:37:22 GMT
Content-Type: application/xml
Content-MD5: 9CJYqNUbXEVhhawEx0ICRw==
 
<LifecycleConfiguration>
    <Rule>
        <ID>delete-2-days</ID>
        <Prefix>test/</Prefix>
        <Status>Enabled</Status>
        <Expiration>
            <Days>70</Days>
        </Expiration>
        <Transition>
            <Days>30</Days>
            <StorageClass>WARM</StorageClass>
        </Transition>
        <Transition>
            <Days>60</Days>
            <StorageClass>COLD</StorageClass>
        </Transition>
    </Rule>
</LifecycleConfiguration>

响应示例:基于最后一次修改时间执行转换文件存储类型以及删除操作

x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSMYkLcGTyUsgSJe2Rdsg2P8JwMsJV6n
x-obs-request-id: 0000018A2BDA0816D2877F5D5622F0BA
Server: OBS
Content-Length: 0
Date: WED, 01 Jul 2015 02:37:22 GMT

请求示例:基于最后一次修改时间执行删除历史版本文件及清理删除标记的操作

PUT /?lifecycle HTTP/1.1
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:iqSPeUBl66PwXDApxjRKk6hlcN4=
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com
Date: WED, 01 Jul 2015 02:37:22 GMT
Content-Type: application/xml
Content-MD5: SGAUB+2hLUAWV5IJ69xU+Q==
 
<LifecycleConfiguration>
    <Rule>
        <ID>delete-2-days</ID>
        <Prefix>test/</Prefix>
        <Status>Enabled</Status>
        <NoncurrentVersionExpiration> 
            <NoncurrentDays>70</NoncurrentDays> 
        </NoncurrentVersionExpiration>
    </Rule>
</LifecycleConfiguration>

响应示例:基于最后一次修改时间执行删除历史版本文件及清理删除标记的操作

x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSZbDadL1f7fYU44bvRLvc0l6D10+wzG
x-obs-request-id: 0000018A2BCBB3ABD3046B99E3ED2E30
Server: OBS
Content-Length: 0
Date: WED, 01 Jul 2015 02:37:22 GMT

请求示例:执行删除碎片操作

PUT /?lifecycle HTTP/1.1
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:iqSPeUBl66PwXDApxjRKk6hlcN4=
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com
Date: WED, 01 Jul 2015 02:37:22 GMT
Content-Type: application/xml
Content-MD5: PBgGafte2ACjUwYxdJA47Q==
 
<LifecycleConfiguration>
    <Rule>
        <ID>delete-2-days</ID>
        <Prefix>test/</Prefix>
        <Status>Enabled</Status>
        <AbortIncompleteMultipartUpload>
            <DaysAfterInitiation>10</DaysAfterInitiation>
        </AbortIncompleteMultipartUpload>
    </Rule>
</LifecycleConfiguration>

响应示例:执行删除碎片操作

x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCTlN+glNMVGtTicAnVXkTVDjR5xKSLuH
x-obs-request-id: 0000018A2BE86742D2C6989CA79E136C
Server: OBS
Content-Length: 0
Date: WED, 01 Jul 2015 02:37:22 GMT

我们使用cookie来确保您的高速浏览体验。继续浏览本站,即表示您同意我们使用cookie。 详情

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容