特殊场景下的复制行为

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

数据复制结合版本控制

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

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

  • 数据同步过程中不允许暂停源或目标Bucket的版本控制,如有需要,您可以先删除数据复制规则再暂停版本控制。

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

请求方式

数据同步策略

结果

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

写同步(增/改)

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

增/删/改同步

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

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

写同步(增/改)

Bucket删除的操作不会同步到目标Bucket。

增/删/改同步

Bucket删除的操作将同步到目标Bucket。

数据复制结合生命周期

数据复制结合版本控制的使用场景,使得目标Bucket中存在Object的多个历史版本,产生较多的存储消耗。如果您希望减少目标Bucket由于数据复制和版本控制带来的存储成本,建议通过生命周期规则实现存储成本控制和自定义数据保留策略。

数据复制结合生命周期的使用场景中,有如下注意事项:

  • 数据复制时仅将源Bucket生命周期规则作用的结果同步至目标Bucket,而不会将源Bucket的生命周期规则配置同步到目标Bucket。如果您希望目标Bucket中的Object副本能够遵循和源Bucket一样的生命周期规则,请在目标Bucket添加与源Bucket相同的生命周期规则。

  • 如果您对目标Bucket设置了生命周期规则,需要注意数据复制后的对象副本的创建时间为对象在源Bucket中的创建时间,而非出现在目标Bucket中的时间。

  • 如果您在源Bucket中设置了生命周期规则,某个Object正在进行数据复制的同时被生命周期规则删除,则Object的数据复制行为可能仍会继续,目标Bucket中的Object副本仍然保留。

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

相同账号下的数据复制支持复制未加密的对象和使用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

不影响