PutBucketVersioning用于设置指定 Bucket 的版本控制状态。只有 Bucket 所有者有权限执行此操作。

说明 默认状态下,所有 Bucket 都处于非版本化状态。

您可以将 Bucket 设置为开启或暂停版本控制状态。在 Bucket 处于开启版本控制状态下,所有添加的文件(Object)都将拥有唯一的版本 ID,OSS 将累积所添加 Object 的多种版本。在 Bucket 处于暂停版本控制状态下,所有新添加 Object 的版本 ID 将为 null,且 OSS 将不再为此状态下添加的 Object 累积更多的版本。

请求语法

PUT /?versioning HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
<?xml version="1.0" encoding="UTF-8"?>
<VersioningConfiguration>
    <Status>Enabled</Status>
<VersioningConfiguration>
说明
  • Bucket 允许设置的版本控制状态为 Enabled 或 Suspended,否则将返回 400 Bad Request。
  • 开启 Bucket 版本控制后,则无法返回到非版本化控制状态,但可通过设置 Bucket 为暂停版本控制状态来停止 Object 版本的继续累积。

示例

  • 开启版本控制请求示例
    PUT /?versioning HTTP/1.1
    Host: bucket-versioning.oss-cn-hangzhou.aliyuncs.com
    Date: Tue, 09 Apr 2019 02:20:12 GMT
    Authorization: OSS e7thre3jj5mlvqk:12ztptkaR8a74gIGFzOaZZQe****
    <?xml version="1.0" encoding="UTF-8"?>
    <VersioningConfiguration>
        <Status>Enabled</Status>
    <VersioningConfiguration>
    返回示例
    HTTP/1.1 200 OK
    x-oss-request-id: 5CAC015CB7AEADE01700****
    Date: Tue, 09 Apr 2019 02:20:12 GMT
    Content-Length: 0
    Connection: keep-alive
    Server: AliyunOSS
  • 暂停版本控制请求示例
    PUT /?versioning HTTP/1.1
    Host: bucket-versioning.oss-cn-hangzhou.aliyuncs.com
    Date: Tue, 09 Apr 2019 02:28:18 GMT
    Authorization: OSS m2qa99e9tpkaehr:DWAzr2EkqDwFJNke1Nuaogn7****
    <?xml version="1.0" encoding="UTF-8"?>
    <VersioningConfiguration>
        <Status>Suspended</Status>
    <VersioningConfiguration>
    返回示例
    HTTP/1.1 200 OK
    x-oss-request-id: 5CAC0342B7AEADE01700****
    Date: Tue, 09 Apr 2019 02:28:18 GMT
    Content-Length: 0
    Connection: keep-alive
    Server: AliyunOSS

错误码

错误码 HTTP 状态码 描述
AccessDenied 403 无操作权限。只有 Bucket 的拥有者才能发起 PutBucketVersioning 请求。
InvalidArgument 400 无效的 versioning 状态。versioning 状态只能设置为 Enabled 或 Suspended。