调用该接口给指定 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.pek3b.qsstor.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 天。

说明

daysyears 只能配置一种,不能同时存在。

响应头

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

名称 类型 说明

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.pek3a.qsstor.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.pek3a.qsstor.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