版本控制功能支持保留存储桶数据的历史版本,避免存储桶内的数据被误删除。
开启版本控制功能后,当您删除或覆盖数据时,TOS 会自动保存您原数据的历史版本。当您误操作时,您可以将数据恢复至历史版本,避免数据丢失或修改。版本控制提供的数据保护功能提高了系统的容错能力,适用于对数据可靠性要求比较高的场景。
开启版本控制功能不需要额外计费,但因版本控制功能保留的文件历史版本均会收取存储费用。为了避免不必要的计费,请您及时删除不再需要的历史版本文件。当您下载或恢复历史版本文件时,还会产生相应的请求、流量等费用。关于 TOS 的计费详情,请参见计费说明。
存储桶的版本状态说明如下:
未开启版本控制功能:存储桶默认不开启版本控制功能,存储桶中的每个对象唯一且不会生成版本 ID。版本控制功能一旦开启,只能暂停,无法恢复至未开启状态。
已开启版本控制功能:开启版本控制功能后,TOS会为存储桶中的每个对象生成一个唯一的版本 ID。开启版本控制功能的相关操作,请参见开启版本控制 。
暂停版本控制功能:开启版本控制功能后,如果您不再需要使用该功能,您可以暂停该功能。暂停版本控制功能后,存储桶中上传的版本 ID 会变成 null。暂停版本控制功能的相关操作,请参见暂停版本控制 。
不同的版本控制状态,对象行为不同, 说明如下:
版本控制状态 | 删除对象 | 覆盖对象 |
---|---|---|
未开启 | 直接删除对象,后续无法再获取此对象。 | 直接覆盖已有对象,且无法恢复。 |
开启 | 在没有开启显示版本的情况下删除对象,该对象不会被真正删除,仅会为该对象会添加一个删除标记来标识该对象是删除状态。 | 生成一个携带全局唯一版本号的新版本对象,历史版本对象不受影响。 |
开启后暂停 | 在没有开启显示版本的情况下删除对象,该对象不会被真正删除,仅会为该对象会添加一个删除标记来标识该对象是删除状态。 | 生成一个版本号为 null 的新版本对象。如果历史版本里已存在版本号为 null 的同名对象,则将会被新的版本对象覆盖,其他非 null 的历史版本对象不受影响。 |