You need to enable JavaScript to run this app.
导航

PutBucketLifecycle

最近更新时间2024.01.15 15:20:45

首次发布时间2023.03.14 21:02:14

功能描述

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

注意事项

  • 单个桶生命周期规则策略 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",
      "Expiration": { "Days": 120 },
      "NoncurrentVersionExpiration": { "NoncurrentDays": 120 },
      "AbortIncompleteMultipartUpload": { "DaysAfterInitiation": 10 },
      "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 为 规则的唯一标识符。

Prefix

String

prefix

指定规则所适用的前缀(Prefix)。不支持设置互相包含的 Prefix。

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

Status

String

Enabled

是否启用规则。取值说明如下:

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

Expiration

Container

{ "Days": 120 }

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

注意

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

子节点:Days、Date

Days

Integer

120

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

注意

Days 与 Date 参数互斥。

Date

String

2024-01-31T00:00:00.000Z

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

注意

Days 与 Date 参数互斥。

NoncurrentVersionExpiration

Container

-

指定对象历史版本的过期属性。

NoncurrentDays

String

30

指定对象历史版本过期删除的天数。
父节点:NoncurrentVersionExpiration

AbortIncompleteMultipartUpload

Container

-

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

说明

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

DaysAfterInitiation

Integer

30

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

Transitions

Array

-

指定对象沉降为指定存储类型的天数。

注意

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

StorageClass

String

IA

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

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

    说明

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

父节点:Transitions

NoncurrentVersionTransitions

Array

30

指定历史版本对象沉降为指定存储类型的天数。

注意

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

父节点:Transitions

Tags

Array

-

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

Key

String

tag

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

Value

String

value

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

响应消息头

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

响应元素

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

请求示例

请求示例 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": "id",
      "Prefix": "prefix1/",
      "Status": "Enabled",
      "Expiration": { "Days": 120 },
    },
    {
      "ID": "id",
      "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