多版本控制
使用场景
利用多版本控制,您可以在一个桶中保留多个版本的对象,使您更方便地检索和还原各个版本,在意外操作或应用程序故障时快速恢复数据。
默认情况下,OBS中新创建的桶不会开启多版本功能,向同一个桶上传同名的对象时,新上传的对象将覆盖原有的对象。
约束与限制
开启了桶级WORM开关,系统将自动开启多版本,并且不允许暂停多版本。
开启多版本控制
- 桶中已有对象的版本ID(空)和内容都不会变化。再次上传该同名对象,对象版本示意图如图1所示。
- 新上传对象,OBS自动为每个对象创建唯一的版本号。上传同名的对象将以不同的版本号同时保存在OBS中,如图2所示。
表1 版本说明 版本
描述
最新版本
多版本控制开启后,同名对象多次操作,每次操作都会对应一个版本号进行保存。最后一次操作保存的版本号,为最新版本。
历史版本
多版本控制开启后,同名对象多次操作,每次操作都会对应一个版本号进行保存。除最后一次外的,其他保存的版本号为历史版本。
- 列出桶内对象列表时默认列出最新对象列表。
- 可以指定版本号下载对象,不指定版本号默认下载最新的对象。详细操作请参见多版本控制的相关操作。
- 可以选中目标对象,并单击右侧的“删除”删除对象。对象被删除后,OBS将插入一个删除标记,开启对象列表页上方的“历史版本”后,带删除标记的对象将在对象列表呈现。详细操作请参见删除对象。此时如果访问该对象,会返回404错误。
图3 删除标记示意图
- 开启对象列表页上方的“历史版本”后,可以彻底删除任意版本的对象。
- 除带删除标记的版本外,其他每个版本的对象存储在OBS中均需要进行计费。
暂停多版本控制
多版本控制一旦启动,不可以关闭,只能暂停使用。暂停后,新上传的对象版本号为空。如果之前有空版本号的同名对象,则会覆盖该带空版本号的对象。

当不需要对桶内对象进行版本控制时,可以暂停多版本控制:
- 历史版本将继续保留在OBS中,如果这些历史版本你不再需要,请手动删除。
- 仍可以指定版本号下载对象,不指定版本号默认下载最新的对象。
- 除带删除标记的版本外,其他历史版本的对象存储在OBS中仍需要进行计费。
暂停与未启用的区别
暂停多版本控制后,删除对象时,无论此对象是否存在历史版本,将会产生一个版本号为空的删除标记。而未启用多版本控制时,则不会产生删除标记。

多版本开启后,由于对象的每个历史版本都被保存下来,每个版本都会占用存储空间,OBS会对所有版本收取存储费用。请谨慎启用多版本开关,以免产生额外的存储费用。
使用方式
OBS支持通过控制台、API、SDK方式配置多版本控制,不支持通过OBS Browser+、obsutil方式配置多版本控制。
相关操作
开启多版本控制后,可以对多版本对象进行删除、分享、下载、延长WORM对象版本保留期操作。
- 在OBS管理控制台左侧导航栏选择“对象存储”。
- 在桶列表中,单击待操作的桶,进入“对象”页面。
- 在“对象”列表,显示该对象的所有版本。
- 对多版本对象可做以下操作。
- 在待操作版本对象右侧,单击“下载”,可下载该版本对象。
如果该版本对象为“归档存储”或“深度归档存储”类别,需要先恢复,再下载。
- 在待操作版本对象右侧,单击“分享”,可分享该版本对象。
- 在待操作版本对象右侧,单击“更多>删除”,将永久删除该版本对象,不可恢复。如果删除的是最新版本的对象,那么时间最近的历史版本将变成新的最新版本。
WORM桶内对象未配置保留策略或者保留策略已过期,可在对象详情->版本,选择对应的版本进行删除操作;如果对象版本在保留期内,则无法成功删除。
- 在需要延长保留期的对象版本右侧,单击“更多>延长保留期”,选择时间点。保留期不支持缩短,仅支持选择延后的指定时间点。
- 在待操作版本对象右侧,单击“下载”,可下载该版本对象。