更新时间:2024-04-15 GMT+08:00

设置桶的多版本状态

功能介绍

多版本功能可在用户意外覆盖或删除对象的情况下提供一种恢复手段。用户可以使用多版本功能来保存、检索和还原对象的各个版本,这样用户能够从意外操作或应用程序故障中轻松恢复数据。多版本功能还可用于数据保留和存档。

默认情况下,桶没有设置多版本功能。

本接口设置桶的多版本状态,用来开启或暂停桶的多版本功能。

设置桶的多版本状态为Enabled,开启桶的多版本功能:

  • 上传对象时,系统为每一个对象创建一个唯一版本号,上传同名的对象将不再覆盖旧的对象,而是创建新的不同版本号的同名对象
  • 可以指定版本号下载对象,不指定版本号默认下载最新对象;
  • 删除对象时可以指定版本号删除,不带版本号删除对象仅产生一个带唯一版本号的删除标记,并不删除对象;
  • 列出桶内对象列表时默认列出最新对象列表,可以指定列出桶内所有版本对象列表;

设置桶的多版本状态为Suspended,暂停桶的多版本功能:

  • 旧的版本数据继续保留 ;
  • 上传对象时创建对象的版本号为null,上传同名的对象将覆盖原有同名的版本号为null的对象;
  • 可以指定版本号下载对象,不指定版本号默认下载最新对象;
  • 删除对象时可以指定版本号删除,不带版本号删除对象将产生一个版本号为null的删除标记,并删除版本号为null的对象;

只有桶的所有者可以设置桶的多版本状态。

请求消息样式

1
2
3
4
5
6
7
8
9
PUT /?versioning HTTP/1.1 
Host: bucketname.obs.region.example.com
Date: date
Authorization: authorization
Content-Length: length

<VersioningConfiguration> 
    <Status>status</Status> 
</VersioningConfiguration>

请求消息参数

该请求消息中不使用消息参数。

请求消息头

该请求使用公共消息头,具体参见表3

请求消息元素

在此请求中,需要在请求的消息体中配置桶的多版本状态,配置信息以XML格式上传。具体的配置元素如表1描述。

表1 桶的多版本状态配置元素

名称

描述

是否必选

VersioningConfiguration

多版本配置的根节点。

父节点:无

Status

标识桶的多版本状态。

类型:String

父节点:VersioningConfiguration

有效值:Enabled,Suspended

响应消息样式

1
2
3
4
HTTP/1.1 status_code
Date: date

Content-Length: length

响应消息头

该请求的响应消息使用公共消息头,具体请参考表1

响应消息元素

该请求的响应消息中不带消息元素。

错误响应消息

无特殊错误,所有错误已经包含在表2中。

请求示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
PUT /?versioning HTTP/1.1
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.example.com
Accept: */*
Date: WED, 01 Jul 2015 03:14:18 GMT
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:sc2PM13Wlfcoc/YZLK0MwsI2Zpo=
Content-Length: 89

<VersioningConfiguration>     
    <Status>Enabled</Status> 
</VersioningConfiguration>

响应示例

1
2
3
4
5
6
HTTP/1.1 200 OK
Server: OBS
x-obs-request-id: BF26000001643672B973EEBC5FBBF909
x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSH6rPRHjQCa62fcNpCCPs7+1Aq/hKzE
Date: Date: WED, 01 Jul 2015 03:14:18 GMT
Content-Length: 0