WORM简介
使用场景
OBS提供WORM(Write Once Read Many)功能,实现对象在用户指定的时间段内不能被删除和篡改。目前OBS支持桶级和对象级的WORM功能,如果您希望在指定时间内任何用户(包含桶或对象的拥有者)均不能修改和删除OBS桶中的所有对象,您可以配置桶级WORM;如果您希望在指定时间内任何用户(包含桶或对象的拥有者)均不能修改和删除OBS桶中的指定对象,您可以配置对象级WORM。
桶级WORM与对象级WORM的区别
| 对比项 | 桶级WORM | 对象级WORM |
|---|---|---|
| 保护范围 | 桶中的所有新上传的对象。 说明: 桶中已上传的对象需要单独配置对象级WORM,才能受WORM保护。 | 单个对象。 可以对新上传的对象或桶中存量对象设置WORM。 |
| 配置方式 | 在创建桶时配置,也可以在桶创建后配置。 | 需要先开启桶级WORM,才能配置对象级WORM。 |
| 保留期 | 设置天数或年,锁定时间为:保留策略生效的时刻 ~(保留策略生效的时刻+保留天数)。
例如:您在2026年5月11日14:53:50设置桶级WORM,保留期设置为3天,则桶中新上传的对象被锁定的时间为2026年5月11日14:53:50至2026年5月14日14:53:50。 | 可以选择继承桶的保留策略,也可以单独配置保留期。 单独配置保留期时,锁定时间为:设置的保留期截止时间点。
例如:您在2026年5月11日14:53:50设置对象级WORM,保留期设置为2026年5月20日,则新上传的对象被锁定的时间为2026年5月11日14:53:50至2026年5月20日23:59:59。 |
| 关闭WORM | 桶级WORM开启后无法关闭,但可以不设置或取消默认保留期。 | 对象级WORM配置后,不支持关闭WORM或取消默认保留期,只能延长保留期。 |
| 优先级 | 对象级WORM高于桶级WORM。 | |
约束与限制
- 桶级WORM开关一旦打开,无法关闭,但可以禁用桶级默认保留期。
- 开启桶级WORM后,无法暂停桶的多版本控制。
- 开启桶级WORM开关的桶暂不支持跨区域复制能力。
- 桶级WORM策略只对策略生效之后新上传的对象生效,如果要使存量对象也受WORM策略保护,请单独为对象配置对象级WORM。
- 不支持迁移场景。
- WORM不阻止修改对象元数据。
- 并行文件系统不支持WORM。
注意事项
- 开启对象级WORM功能前需要先开启桶级WORM,当对象同时被桶级WORM和对象级WORM锁定时,优先遵从对象级WORM的保护策略。
- 对象级WORM保留期只能延长不能缩短。
- 在客户销户、欠费超期情况下,WORM未到期数据会被删除而不做保留。
- 分段上传产生的分段文件不受WORM保护。
- 在配置桶日志记录时,不建议您将日志存储桶设置为WORM保留策略生效的桶,可能会由于老旧文件无法被删除而导致存储费用持续增长。
- 在开启了WORM开关的桶中,使用追加写上传对象将失败并返回403。
- 策略目前仅支持合规模式。
权限控制
- 您必须是桶拥有者或拥有配置桶级默认WORM策略的权限,才能配置桶级WORM。相关授权,请参见桶级WORM授权信息。
- 您必须是对象拥有者或拥有配置对象级默认WORM策略的权限,才能配置对象级WORM。相关授权,请参见对象级WORM授权信息。
WORM与其他功能协同工作
开启桶级WORM开关前,需要先开启多版本控制。使用控制台配置WORM时,控制台会自动开启多版本,并且不允许暂停多版本。使用API配置WORM时,需要您自行调用设置桶的多版本状态接口开启多版本。
版本对象保护机制:
- WORM对所有版本对象提供保护,在保留期内不允许删除或覆盖任何版本对象。
- 开启WORM后,允许上传同名对象,产生新的版本对象,其同样受WORM保护。
- WORM不作用于删除标记,清理删除标记不受WORM的限制。
- 处于保护中的对象不会被生命周期删除,但是能正常进行存储类别转换。受保护的对象不再受保护后,如果满足生命周期过期规则,将会被系统删除。
- 删除标记不受WORM保护,可以通过配置生命周期规则来自动清理无历史版本的删除标记。
WORM结合跨区域复制协同工作时,存在如下情况:
- 当源桶处于WORM保留期时,暂不支持配置跨区域复制,且已配置的跨区域复制规则将不生效。
- 当目标桶处于WORM保留期时:源桶中的对象会被复制到目标桶中,且受桶级WORM保护;在目标桶WORM策略生效前上传的存量对象不受桶级WORM保护,需要单独为每个对象配置对象级WORM,才能使存量对象受WORM保护。
WORM结合服务端加密协同工作时,存在如下情况:
- 当桶同时配置了WORM和服务端加密时,两者互不影响,各自生效使用。您可以为加密对象配置对象级WORM,也可以在上传对象时同时配置服务端加密和对象级WORM。
- 上传对象后支持配置WORM,但上传对象后不支持配置服务端加密。
- 如果对象无法被修改或删除,可能是由于对象处于WORM保留期,还有可能是对象被加密,而您没有加密相关授权,所以无法修改或删除对象。

