设置版本控制
最近更新时间: 2024-10-17 17:10:00
功能描述
PUT Bucket versioning 接口实现启用或者暂停存储桶的版本控制功能。
细节分析
如果您从未在存储桶上启用过版本控制,则 GET Bucket versioning 请求不返回版本状态值。
开启版本控制功能后,只能暂停,不能关闭。
设置版本控制状态值为 Enabled 或者 Suspended,表示开启版本控制和暂停版本控制。
设置存储桶的版本控制功能,您需要有存储桶的写权限。
请求
请求示例
PUT /?versioning HTTP 1.1
Host: <BucketName-APPID>.<Endpoint>
Date: GMT date
Authorization: Auth String
说明:
Authorization: Auth String(详情请参见请求签名文档)。
请求头
公共头部
该请求操作的实现使用公共请求头,了解公共请求头详情请参见 公共请求头部 文档。
非公共头部
该请求操作无特殊的请求头部信息。
请求体
<VersioningConfiguration>
<Status></Status>
</VersioningConfiguration>
具体的数据内容如下:
节点名称(关键字) | 父节点 | 描述 | 类型 |
---|---|---|---|
VersioningConfiguration | 无 | 说明版本控制的具体信息 | Container |
Status | VersioningConfiguration | 说明版本是否开启,枚举值:Suspended、Enabled | Enum |
响应
响应头
公共响应头
该响应包含公共响应头,了解公共响应头详情请参见 公共响应头部 文档。
特有响应头
该响应无特殊的响应头。
响应体
该响应体为空。
错误分析
以下描述此请求可能会发生的一些特殊的且常见的错误情况。获取更多关于 COS 的错误码的信息,或者产品所有的错误列表,请参见 错误码 。
错误码 | HTTP状态码 | 描述 |
---|---|---|
InvalidArgument | 400 Bad Request | 如果开启版本控制的 xml body 为空,会返回 InvalidArgument |
InvalidDigest | 400 Bad Request | 1. 携带的 Content-MD5 和服务端计算的请求 body 的不一致 2. 开启版本控制的状态只有 Enabled 和 Suspended 两个合法值,如果写了其他状态,将返回 InvalidArgument |
实际案例
请求
PUT /?versioning HTTP/1.1
Host: <BucketName-APPID>.<Endpoint>
Connection: keep-alive
Accept-Encoding: gzip, deflate
Accept: */*
User-Agent: python-requests/2.12.4
Content-Type: application/xml
Authorization: q-sign-algorithm=sha1&q-ak=AKID15IsskiBQKTZbAo6WhgcBqVls9Sm****&q-sign-time=1480932292;1981012292&q-key-time=1480932292;1981012292&q-url-param-list=versioning&q-header-list=host&q-signature=47ec2b80c73788ecd394d3b9ad90e120a32f****
Content-Length: 83
<VersioningConfiguration>
<Status>Enabled</Status>
</VersioningConfiguration>
响应
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: 0
Connection: keep-alive
Date: Wed, 23 Aug 2017 08:14:53 GMT
Server: tencent-cos
x-cos-request-id: NTk5ZDM5N2RfMjNiMjM1MGFfMmRiX2Y0****