本文介绍数据复制(包括跨区域复制以及同区域复制)结合版本控制、生命周期、服务器端加密、合规保留策略等特殊场景的复制行为。
数据复制结合版本控制
数据复制结合版本控制的使用场景中,有如下限制:
仅允许同时处于非版本控制或启用版本控制状态的两个存储空间(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 | 不影响 | 是 |