You need to enable JavaScript to run this app.
导航
PutBucketLifecycle
最近更新时间:2024.08.01 20:30:29首次发布时间:2023.03.14 21:02:14

功能描述

此接口用于为存储桶(Bucket)设置生命周期规则。生命周期规则开启后,TOS 将按照规则中指定的过期时间,自动转换与规则相匹配文件(Object)的存储类型或将其删除。

注意事项

  • 单个桶生命周期规则策略总数不超过 1000 条,将所有策略 JSON 序列化后总大小不能超过 20KB。
  • 调用此接口你必须为桶所有者,或桶拥有者的子账号且被授权当前桶的 PutBucketLifecycle 权限。使用桶策略实现权限控制的详细说明,请参见存储桶授权策略管理
  • 如果您之前没有设置过生命周期规则,则执行此操作会创建一个新的生命周期规则;如果已为 Bucket 设置了生命周期规则,则执行此操作会覆写已有的规则配置。
  • PutBucketLifecycle 为覆盖语义。当您需要追加生命周期规则时,请先调用 GetBucketLifecycle 接口获取当前生命周期规则配置,然后追加新的生命周期规则配置,最后调用 PutBucketLifecycle 接口更新生命周期规则配置。

请求消息样式

PUT /?lifecycle HTTP/1.1
Host: bucket-name.tos-cn-beijing.volces.com
Date: GMT Date
Authorization: authorization string
Content-Length: ContentLength
Content-MD5: MD5
{
    "Rules": [
        {
            "ID": "id",
            "Prefix": "prefix",
            "Status": "Enabled",
            "Tags": [
                {
                    "Key": "key",
                    "Value": "value"
                }
            ],
            "Filter": {
                "ObjectSizeGreaterThan": 65536,
                "GreaterThanIncludeEqual": "Enabled",
                "ObjectSizeLessThan": 10485760,
                "LessThanIncludeEqual": "Disabled"
            },
            "Expiration": {
                "Days": 120
            },
            "NoncurrentVersionExpiration": {
                "NoncurrentDays": 90
            },
            "AbortIncompleteMultipartUpload": {
                "DaysAfterInitiation": 30
            },
            "Transitions": [
                {
                    "StorageClass": "IA",
                    "Days": 30
                },
                {
                    "StorageClass": "COLD_ARCHIVE",
                    "Days": 60
                }
            ],
            "NoncurrentVersionTransitions": [
                {
                    "StorageClass": "IA",
                    "NoncurrentDays": 30
                },
                {
                    "StorageClass": "COLD_ARCHIVE",
                    "NoncurrentDays": 60
                }
            ]
        }
    ]
}

请求参数和消息头

该请求使用的公共请求消息头,请参见公共参数

名称

位置

参数类型

是否必选

示例值

说明

lifecycle

Query

String

-

代表 PutBucketLifecycle 请求的特殊标识。

请求元素

名称

参数类型

是否必填

示例值

说明

Rules

Array

-

生命周期规则信息。

ID

String

id

设置规则 ID,ID 为 规则的唯一标识符。

  • ID 长度最长不能超过 255。
  • 多条规则的 ID 不能重复。

Prefix

String

prefix

指定规则所适用的前缀(Prefix)。

  • 如果指定了 Prefix,则表示此规则仅适用于 Bucket 中与 Prefix 匹配的对象。
  • 如果不设置 Prefix ,则表示此规则适用于 Bucket 中的所有对象。
  • Prefix 长度最长不能超过 1024。

Status

String

Enabled

是否启用规则。只能取值 EnabledDisabled,取值说明如下:

  • Enabled:表示启用规则,TOS 会定期执行该规则。
  • Disabled:表示不启用规则,TOS 会忽略该规则。

Expiration

Container

{ "Days": 120 }

指定对象的过期属性。 对于已开启版本控制的 Bucket,指定的过期时间只对对象的当前版本生效。

注意

对象的过期删除时间必须大于转为其他存储类型的时间。

子节点:Days、Date

Days

Integer

120

指定对象上传后过期删除的天数,必须为正整数。

注意

Days 与 Date 参数互斥。

父节点:Expiration

Date

String

2024-01-31T00:00:00.000Z

指定对象上传后过期删除的具体日期。
日期需要按照 ISO8601 标准表示并使用 UTC 时间,且必须为 UTC 的零点。

注意

Days 与 Date 参数互斥。

父节点:Expiration

NoncurrentVersionExpiration

Container

-

指定对象历史版本的过期属性。仅对已开启版本控制或暂停版本控制的 Bucket 生效,仅对对象的历史版本生效。

注意

对象的历史版本过期删除时间必须大于转为其他存储类型的时间。

子节点:NoncurrentDays、NoCurrentDate

NoncurrentDays

String

30

指定对象历史版本过期删除的天数。

注意

NoncurrentDays 与 NoCurrentDate 参数互斥。

父节点:NoncurrentVersionExpiration

NoCurrentDate

String

2024-01-31T00:00:00.000Z

指定对象历史版本过期删除的具体日期。
日期需要按照 ISO8601 标准表示并使用 UTC 时间,且必须为 UTC 的零点。

注意

NoncurrentDays 与 NoCurrentDate 参数互斥。

父节点:NoncurrentVersionExpiration

AbortIncompleteMultipartUpload

Container

-

指定未合并的分片任务(碎片)的过期属性。

说明

AbortIncompleteMultipartUpload 不支持基于对象标签(Tag)的筛选条件。

子节点:DaysAfterInitiation

DaysAfterInitiation

Integer

30

指定未合并的分片任务(碎片)的生命周期规则,在分片任务初始化过后过期删除的天数。
父节点:AbortIncompleteMultipartUpload

Transitions

Array

-

指定对象沉降为指定存储类型的过期属性。 对于已开启版本控制的 Bucket,指定的过期时间只对对象的当前版本生效。

注意

如果您同时设置了自动沉降到低频存储、智能分层、归档闪回存储、归档存储、冷归档存储、深度冷归档及删除对象,则沉降时间必须满足:沉降到低频的时间 < 沉降到智能分层的时间 < 沉降到归档闪回的时间< 沉降到归档的时间 < 沉降到冷归档的时间 < 沉降到深度冷归档的时间 < 删除的时间。

子节点:StorageClass、Days、Date

StorageClass

String

IA

指定对象沉降的存储类型。取值如下:

  • IA:低频访问存储。
  • INTELLIGENT_TIERING:智能分层存储。
  • ARCHIVE_FR:归档闪回存储。
  • ARCHIVE:归档存储。
  • COLD_ARCHIVE:冷归档存储。
  • DEEP_COLD_ARCHIVE:深度冷归档存储。

    说明

    深度冷归档目前处于邀测状态,如您需要使用该存储类型,请联系客户经理。

父节点:Transitions

Days

Integer

120

指定对象过期沉降的天数,必须为正整数。

注意

Days 与 Date 参数互斥。

父节点:Transitions

Date

String

2024-01-31T00:00:00.000Z

指定对象过期沉降的具体日期。
日期需要按照 ISO8601 标准表示并使用 UTC 时间,且必须为 UTC 的零点。

注意

Days 与 Date 参数互斥。

父节点:Transitions

NoncurrentVersionTransitions

Array

-

指定历史版本对象沉降为指定存储类型的过期属性。仅对已开启版本控制或暂停版本控制的 Bucket 生效,仅对对象的历史版本生效。

注意

如果您同时设置了将历史版本自动沉降到低频存储、智能分层、归档闪回存储、归档存储、冷归档存储、深度冷归档存储及删除对象,则沉降时间必须满足:沉降到低频的时间 < 沉降到智能分层的时间 < 沉降到归档闪回的时间< 沉降到归档的时间 < 沉降到冷归档的时间 < 沉降到深度冷归档的时间 < 删除的时间。

子节点:StorageClass、NoncurrentDays、NoCurrentDate

StorageClass

String

IA

指定历史版本对象沉降的存储类型。取值如下:

  • IA:低频访问存储。
  • INTELLIGENT_TIERING:智能分层存储。
  • ARCHIVE_FR:归档闪回存储。
  • ARCHIVE:归档存储。
  • COLD_ARCHIVE:冷归档存储。
  • DEEP_COLD_ARCHIVE:深度冷归档存储。

    说明

    深度冷归档目前处于邀测状态,如您需要使用该存储类型,请联系客户经理。

父节点:NoncurrentVersionTransitions

NoncurrentDays

Integer

120

指定历史版本对象过期沉降的天数,必须为正整数。

注意

NoncurrentDays 与 NoncurrentDate 参数互斥。

父节点:NoncurrentVersionTransitions

NoncurrentDate

String

2024-01-31T00:00:00.000Z

指定历史版本对象过期沉降的具体日期。
日期需要按照 ISO8601 标准表示并使用 UTC 时间,且必须为 UTC 的零点。

注意

NoncurrentDays 与 NoncurrentDate 参数互斥。

父节点:NoncurrentVersionTransitions

Tags

Array

-

TOS 可针对有特定标签的 Object,配置生命周期规则,最多可配置 10 个标签。关于标签的详细说明,请参见文件标签管理

Key

String

tag

对象标签的键。
父节点:Tags

Value

String

value

对象标签的值。
父节点:Tags

Filter

Container

-

指定规则生效的过滤条件,当前支持指定对象大小范围内生效。
子节点:ObjectSizeGreaterThan、GreaterThanIncludeEqual、ObjectSizeLessThan、LessThanIncludeEqual

ObjectSizeGreaterThan

Integer

65536

设置规则生效于大于指定大小的对象,单位是字节。
父节点:Filter

GreaterThanIncludeEqual

String

Enabled

是否启用相等条件。只能取值 EnabledDisabled,不配置则默认为 Disabled。取值说明如下:

  • Enabled:表示启用相等条件,即“大于等于”。
  • Disabled:表示不启用相等条件,即“大于”。

父节点:Filter

ObjectSizeLessThan

Integer

65536

设置规则生效于小于指定大小的对象,单位是字节。
父节点:Filter

LessThanIncludeEqual

String

Enabled

是否启用相等条件。只能取值 EnabledDisabled,不配置则默认为 Disabled。取值说明如下:

  • Enabled:表示启用相等条件,即“小于等于”。
  • Disabled:表示不启用相等条件,即“小于”。

父节点:Filter

响应消息头

该请求返回的公共响应消息头,请参见公共参数

响应元素

该请求响应中无消息元素。

请求示例

请求示例 1

配置桶最新版本过期删除。

PUT /?lifecycle HTTP/1.1
Host: bucket-name.tos-cn-beijing.volces.com
Date: Fri, 30 Jul 2021 08:05:36 +0000
Authorization: authorization string
Content-Length: ContentLength
Content-MD5: MD5
{
    "Rules": [{
      "ID": "id",
      "Prefix": "prefix",
      "Status": "Enabled",
      "Expiration": { "Days": 120 }
    }]
}

请求示例 2

配置多版本桶最新对象过期删除、历史对象过期删除和未合并对象过期删除。

PUT /?lifecycle HTTP/1.1
Host: bucket-name.tos-cn-beijing.volces.com
Date: Fri, 30 Jul 2021 08:05:36 +0000
Authorization: authorization string
Content-Length: ContentLength
Content-MD5: MD5
{
    "Rules": [{
      "ID": "id",
      "Prefix": "prefix",
      "Status": "Enabled",
      "Expiration": { "Days": 120 },
      "NoncurrentVersionExpiration": { "NoncurrentDays": 120 },
      "AbortIncompleteMultipartUpload": { "DaysAfterInitiation": 10 }
    }]
}

请求示例 3

配置桶中对象执行存储类型转换和过期删除操作。

PUT /?lifecycle HTTP/1.1
Host: bucket-name.tos-cn-beijing.volces.com
Date: Fri, 30 Jul 2021 08:05:36 +0000
Authorization: authorization string
Content-Length: ContentLength
Content-MD5: MD5
{
    "Rules": [{
      "ID": "id",
      "Prefix": "prefix",
      "Status": "Enabled",
      "Expiration": { "Days": 120 },
      "NoncurrentVersionExpiration": { "NoncurrentDays": 120 },
      "Transitions": [
        {
          "StorageClass": "IA",
          "Days": 30
        },
        {
          "StorageClass": "COLD_ARCHIVE",
          "Days": 60
        }
      ]
    }]
}

请求示例 4

配置桶中指定对象前缀和标签执行存储类型转换和过期删除操作。

PUT /?lifecycle HTTP/1.1
Host: bucket-name.tos-cn-beijing.volces.com
Date: Fri, 30 Jul 2021 08:05:36 +0000
Authorization: authorization string
Content-Length: ContentLength
Content-MD5: MD5
{
    "Rules": [{
      "ID": "id",
      "Prefix": "prefix",
      "Status": "Enabled",
      "Expiration": { "Days": 120 },
      "NoncurrentVersionExpiration": { "NoncurrentDays": 120 },
      "Transitions": [
        {
          "StorageClass": "IA",
          "Days": 30
        },
        {
          "StorageClass": "COLD_ARCHIVE",
          "Days": 60
        }
      ],
        "Tags": [
        {
          "Key": "aa",
          "Value": "bb"
        },
        {
          "Key": "cc",
          "Value": "dd"
        }
      ]
    }]
}

请求示例 5

根据不同的前缀为桶配置多个生命周期规则。

PUT /?lifecycle HTTP/1.1
Host: bucket-name.tos-cn-beijing.volces.com
Date: Fri, 30 Jul 2021 08:05:36 +0000
Authorization: authorization string
Content-Length: ContentLength
Content-MD5: MD5
{
    "Rules": [
    {
      "ID": "id1",
      "Prefix": "prefix1/",
      "Status": "Enabled",
      "Expiration": { "Days": 120 },
    },
    {
      "ID": "id2",
      "Prefix": "prefix2/",
      "Status": "Enabled",
      "AbortIncompleteMultipartUpload": { "DaysAfterInitiation": 10 }
    }]
}

响应示例

HTTP/1.1 200 OK
x-tos-id-2: f91b0c03a01300c1-a444cd0        
x-tos-request-id: f91b0c03a01300c1-a444cd0            
Date: Fri, 30 Jul 2021 06:45:39 GMT
server: TosServer
Content-Length: 0