全部产品
Search
文档中心

对象存储 OSS:特殊场景下的复制行为

更新时间:Feb 10, 2025

本文介绍数据复制(包括跨区域以及同区域复制)结合版本控制、生命周期、服务器端加密、合规保留策略等特殊场景的复制行为。

数据复制结合版本控制

数据复制结合版本控制的使用场景中,有如下限制:

  • 仅允许同时处于非版本控制或启用版本控制状态的两个存储空间(Bucket)开启数据复制。处于数据同步状态下的两个Bucket不允许改变其版本控制状态。

  • 数据同步过程中不能暂停源或目标Bucket的版本控制。如需暂停,请先删除数据复制规则。

从已开启版本控制的源Bucket中删除对象(Object)时,会出现以下几种情况:

请求方式

数据同步策略

结果

发出Delete请求但未指定Object版本ID

增/改同步

源和目标Bucket均不删除Object,OSS会在源Bucket中创建删除标记(Delete Marker),且源Bucket创建的删除标记会同步到目标Bucket。

增/删/改同步

发出Delete请求且指定了Object版本ID

增/改同步

只删除源Bucket内的Object,不删除目标Bucket内的Object。

增/删/改同步

同步删除源和目标Bucket的Object。

数据复制结合生命周期

数据复制结合版本控制会在目标Bucket中产生多个历史版本,增加存储消耗。如果您希望减少存储成本,建议通过生命周期规则实现存储成本控制和自定义数据保留策略。

使用数据复制结合生命周期时,请注意:

  • 数据复制只会将源Bucket生命周期规则作用的结果同步至目标Bucket,不会同步规则配置。若希望目标Bucket遵循源Bucket的生命周期规则,请在目标Bucket添加相同的规则。

  • 目标Bucket中对象副本的创建时间为对象在源Bucket中的创建时间,而非出现在目标Bucket的时间。

  • 如果源Bucket中的对象在数据复制时被生命周期规则删除,数据复制可能仍会继续,目标Bucket中的对象副本仍然保留。

数据复制结合服务器端加密

相同账号下的数据复制支持复制未加密的对象和使用KMS托管密钥加密、OSS完全托管加密(SSE-OSS)进行服务器端加密的对象。更多信息,请参见服务器端加密

数据复制结合服务器端加密的使用场景中,会出现以下几种情况:

源Object的加密情况

目标Bucket的加密方式

是否使用KMS加密目标对象

目标Object的加密方式

未加密

未加密

不影响

保留未加密状态

SSE-OSS

不影响

SSE-OSS

SSE-KMS,不指定CMK ID

不影响

SSE-KMS,不指定CMK ID

SSE-KMS,指定CMK ID

配置SyncRole、CMKID

SSE-KMS,指定CMK ID

不涉及(源Object无法复制到目标Bucket)

OSS完全托管加密(SSE-OSS)

无限制

不影响

SSE-OSS

KMS托管密钥加密(SSE-KMS,不指定CMK ID)

无限制

配置SyncRole、CMKID

SSE-KMS,指定CMK ID

SSE-KMS,不指定CMK ID

KMS托管密钥加密(SSE-KMS,指定CMK ID)

无限制

配置SyncRole、CMKID

SSE-KMS,指定CMK ID

不涉及(源Object无法复制到目标Bucket)

数据复制结合合规保留策略

当Bucket的合规保留策略(WORM)被锁定后,您可以在Bucket中上传和读取Object,但是在Object的保留时间到期之前,无法修改(覆写)或删除Object。

关于合规保留策略的更多信息,请参见合规保留策略

数据复制结合合规保留策略的使用场景中,会出现以下几种情况:

源Object是否处于WORM保护期

源Bucket中允许的操作

目标Object是否处于WORM保护期

是否同步到目标Bucket

新增Object

覆写Object

删除Object

新增Object

覆写Object

删除Object

新增Object

不影响