调用该接口给指定 Bucket 设置桶级别合规保留策略。仅支持 Bucket 所有者使用该 API。使用流程如下。

  1. 首次调用时,是给 Bucket 开启桶级别锁,并设置一个保护时间。

  2. 在桶级别锁未锁定时再次调用该 API,可修改保留策略。若 Body 为空,则可以用来删除桶级别锁的 retention_policy,使 Bucket 回到未保护的状态。

  3. 在桶级别锁锁定时再次调用该 API,则可以用来延长保护时间。

注意事项

  • 目前仅支持针对 Bucket 级别设置桶级别锁,不支持针对目录设置;单个对象设置参考对象版本锁。

  • 同一个 Bucket 中,版本管理功能和桶级别锁无法同时配置。若 Bucket 已开启版本管理功能,则无法再配置桶级别锁。

  • Bucket 内的 Object 在桶级别锁生效期间,可以配置存储类型转化,在保证合规性的前提下,降低存储成本;也可以配置生命周期规则,在 Object 保护期结束后,Object 会自动删除。

  • 处于桶级别锁保护期内的 Object 支持 AppendObject 操作。

请求语法

PUT /?retention HTTP/1.1
Host: mybucket.jn1.is.shanhe.com
Date: Sun, 16 Aug 2015 09:05:00 GMT
Authorization: authorization string

{
"days": integer
"years": integer
}

请求参数

无。

请求头

此接口仅包含公共请求头。关于公共请求头的更多信息,请参见公共请求头。

请求消息体

调用该 API 需携带如请求语法中的 Json 消息体。该消息体各字段说明如下。

名称 类型 说明 是否必须

days

Integer

数据保留时间,最大限制为 36500 天。这里的一天是指 86400 秒。

否

years

Integer

数据保留时间,最大限制为 100 年。这里的一年是指 365 天。

否

说明

days 与 years 只能配置一种,不能同时存在。

响应头

除公共响应头外,山河云对象存储服务端还会返回如下消息头。

名称 类型 说明

x-qs-worm-id

String

保留规则 ID,由系统生成,用于唯一标识该条 WORM 规则。

响应体

无。

返回码

返回码 描述 HTTP 状态码

OK

成功

200

ERR_INVALID_BUCKET_STATE

Bucket 已经开启多版本管理功能

400

ERR_ACCESS_DENIED

删除保留策略失败

403

ERR_INVALID_ARGUMENT

保留时间超过最大保留期限

400

其他返回码可参考错误码列表。

示例

示例一

开启桶级别锁。

  • 请求示例

    PUT /?retention HTTP/1.1
    Host: mybucket.jn1.is.shanhe.com
    Date: Sun, 16 Aug 2015 09:05:00 GMT
    Authorization: <authorization-string>
    {
        "days": 1
    }
  • 响应示例

    HTTP/1.1 200 OK
    Server: QingStor
    Date: Sun, 16 Aug 2015 09:05:00 GMT
    Content-Length: 809
    Connection: close
    x-qs-request-id: aa08cf7a43f611e5886952542e6ce14b
    x-qs-worm-id: MTY4MjA0NjAyOS0zMTUzNjAwMDAw

示例二

删除桶级别锁的保留策略。

  • 请求示例

    PUT /?retention HTTP/1.1
    Host: mybucket.jn1.is.shanhe.com
    Date: Sun, 16 Aug 2015 09:05:00 GMT
    Authorization: <authorization-string>
    {}
  • 响应示例

    HTTP/1.1 200 OK
    Server: QingStor
    Date: Sun, 16 Aug 2015 09:05:00 GMT
    Content-Length: 809
    Connection: close
    x-qs-request-id: aa08cf7a43f611e5886952542e6ce14b