多版本功能可在用户意外覆盖或删除对象的情况下提供一种恢复手段。用户可以使用多版本功能来保存、检索和还原对象的各个版本,这样用户能够从意外操作或应用程序故障中轻松恢复数据。多版本功能还可用于数据保留和存档。
默认情况下,桶没有设置多版本功能。
当开启WORM开关后,桶默认开启了多版本功能,并且无法暂停。
本接口设置桶的多版本状态,用来开启或暂停桶的多版本功能。
设置桶的多版本状态为Enabled,开启桶的多版本功能:
- 上传对象时,系统为每一个对象创建一个唯一版本号,上传同名的对象将不再覆盖旧的对象,而是创建新的不同版本号的同名对象
- 可以指定版本号下载对象,不指定版本号默认下载最新对象;
- 删除对象时可以指定版本号删除,不带版本号删除对象仅产生一个带唯一版本号的删除标记,并不删除对象;
- 列出桶内对象列表时默认列出最新对象列表,可以指定列出桶内所有版本对象列表;
- 除了删除标记外,每个版本的对象存储均需计费(不包括对象元数据)。
设置桶的多版本状态为Suspended,暂停桶的多版本功能:
- 旧的版本数据继续保留 ;
- 上传对象时创建对象的版本号为null,上传同名的对象将覆盖原有同名的版本号为null的对象;
- 可以指定版本号下载对象,不指定版本号默认下载最新对象;
- 删除对象时可以指定版本号删除,不带版本号删除对象将产生一个版本号为null的删除标记,并删除版本号为null的对象;
- 除了删除标记外,每个版本的对象存储均需计费(不包括对象元数据)。
只有桶的所有者可以设置桶的多版本状态。
PUT /?versioning HTTP/1.1
Host: bucketname.obs.cn-north-4.myhuaweicloud.com
Date: date
Authorization: authorization
Content-Length: length
<VersioningConfiguration>
<Status>status</Status>
</VersioningConfiguration>
该请求消息中不使用消息参数。
该请求使用公共消息头,具体参见表3。
在此请求中,需要在请求的消息体中配置桶的多版本状态,配置信息以XML格式上传。具体的配置元素如表1描述。
表 1 桶的多版本状态配置元素
名称 | 描述 | 是否必选 |
---|---|---|
VersioningConfiguration | 多版本配置的根节点。父节点:无 | 是 |
Status | 标识桶的多版本状态。类型:String父节点:VersioningConfiguration有效值:Enabled,Suspended | 是 |
HTTP/1.1 status_code
Date: date
Content-Length: length
该请求的响应消息使用公共消息头,具体请参考表1。
该请求的响应消息中不带消息元素。
无特殊错误,所有错误已经包含在表2中。
PUT /?versioning HTTP/1.1
User-Agent: curl/7.29.0
Host: examplebucket.obs.cn-north-4.myhuaweicloud.com
Accept: */*
Date: WED, 01 Jul 2015 03:14:18 GMT
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:sc2PM13Wlfcoc/YZLK0MwsI2Zpo=
Content-Length: 89
<VersioningConfiguration>
<Status>Enabled</Status>
</VersioningConfiguration>
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
PUT /?versioning HTTP/1.1
Authorization: OBS H4IPJX0TQTHTHEBQQCEC:iqSPeUBl66PwXDApxjRKk6hlcN4=
User-Agent: curl/7.29.0
Host: examplebucket.obs.region.myhuaweicloud.com
Date: WED, 01 Jul 2015 02:37:22 GMT
Content-Type: application/xml
<VersioningConfiguration>
<Status>Suspended</Status>
</VersioningConfiguration>
x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSjqfl2JttwovZb7kTM+xkyQQyhNyOOC
x-obs-request-id: 0000018A2C044BC6D24722440C5EC81C
Server: OBS
Content-Length: 0
Date: WED, 01 Jul 2015 02:37:22 GMT