使用OBS实现跨账号跨区域桶之间数据复制
使用场景
跨账号跨区域复制是指将某个账号某个区域下的源桶中的数据复制到其他账号其他区域下的目标桶中。
跨账号跨区域复制主要分为以下两种场景:
本节介绍使用OBS控制台、API和obsutil工具实现跨账号跨区域桶之间数据复制。
支持复制的对象范围:包括文件/文件夹、对象列表、指定对象前缀、指定时间修改后的对象。
支持复制的对象内容:对象内容、元数据(对象名称、大小、最后修改时间、创建者、版本号、用户定义的元数据)、ACL、存储类别。
跨账号跨区域复制主要适用于以下场景:
- 合规性要求
OBS默认跨多个地理位置较远的可用区存储数据,但由于合规性要求所规定的数据存储距离可能更远,此时通过跨区域复制,可以在远距离OBS区域之间复制数据以满足合规性要求。
- 最大限度减少延迟
客户需要在多地访问相同的OBS资源。为了最大限度缩短访问对象时的延迟,您可以使用跨区域复制,在离客户较近的区域中创建对象副本。
- 数据复制
由于业务原因,您需要将OBS数据从一个区域的数据中心迁移至另一个区域的数据中心。
- 数据备份与容灾
出于对数据安全性以及可用性的考虑,您希望对所有写入OBS的数据,都在另一个区域的数据中心显式地创建一个备份,以防止在数据发生不可逆损毁时,有安全、可用的备份数据。
- 易维护
您在两个不同OBS区域中具有分析同一组对象的计算集群,您可以选择在这些区域中维护对象副本。
OBS帮助您将存储于华为云对象存储的业务数据复制到指定Region,但华为云并不感知您的数据的具体内容,也不对您使用本服务的合法合规性负责。如果您的复制涉及跨境传输,请确保您使用本服务符合法律法规的要求。
约束与限制
| 限制类别 | 具体限制 |
|---|---|
| 桶版本限制 | 桶版本号为3.0及以上的桶支持跨区域复制功能。 桶版本号可以在OBS管理控制台上,进入桶概览页后,在“基本信息”中查看。详情请参见查看桶信息。 |
| 功能限制 |
|
| 时间限制 | 跨区域复制不保证时效性,配置跨区域复制规则后,可能会出现对象不会立即进行复制的情况,请耐心等待。 |
| 区域限制 |
|
| 同步历史对象相关 |
|
| 多版本控制相关 |
|
| 权限相关 |
|
| 其他约束与限制 |
|
跨账号跨区域复制费用说明
- 使用OBS控制台、API、obsutil工具进行跨区域数据复制时,也会产生请求费用、流量费用、存储费用,如表2。
表2 跨区域复制数据说明 操作名称
产生费用类别
费用说明
付费方式
跨区域复制数据
请求费用
按复制成功的对象数计算请求次数,产生请求费用。复制对象过程中调用的请求,请参考复制对象说明。
- 对于非多段对象,成功复制一个对象,会产生源桶的一个GET请求和目标桶的一个PUT请求;在源桶删除一个对象,会产生目标桶的一个DELETE请求。
- 多段对象的每个分段,均会产生源端的GET请求和目标端的PUT请求。
- 已通过跨区域复制功能复制到目标桶的对象,如果修改了源对象的ACL,则跨区域复制功能会同步复制源对象的ACL到目标对象,该操作会产生源端的PUT请求费用。 说明:
由于是源端发起的复制对象ACL的行为,所以产生的PUT请求费用在源端计算。
如何计算请求费用等详细说明,请参见请求费用说明。
按需计费
流量费用
使用跨区域复制功能将源桶数据复制到另一个区域的目标桶时所产生的跨区域复制流量,只收取数据流出源桶的单向流量费用。
如果对象经过了服务端加密,计算跨区域复制流量费用时,SSE-KMS和SSE-OBS按照明文长度计算。
说明:跨账号跨区域复制暂不支持复制SSE-KMS的加密对象
按需计费
资源包(跨区域复制流量包)
存储费用
跨区域复制目标桶的存储费用,即除了为源桶数据支付存储费用,由于目标桶经过复制后也会存储数据,您还需支付目标桶数据的存储费用。
如果您修改了复制对象的存储类别,复制到目标桶的数据按新的存储类型计算存储费用。
如果对象经过了服务端加密,计算存储费用时,按照密文长度计算。
按需计费
资源包(各存储类别对应的存储包)
同步历史对象
请求费用
启用同步历史对象功能,系统会将创建跨区域复制规则前已经存在于桶中的对象同步复制到目标桶。
请求费用按系统自动同步时复制成功的对象数计算请求次数,产生请求费用,且对于历史对象的列举,产生相应的列举费用。
按需计费
流量费用
系统跨区域同步对象时,所产生的跨区域复制流量,只收取数据流出源桶的单向流量费用。
如果历史对象经过了服务端加密,计算跨区域复制流量费用时,SSE-KMS和SSE-OBS按照明文长度计算。
按需计费
资源包(跨区域复制流量包)
存储费用
跨区域复制目标桶的存储费用,即除了为源桶数据支付存储费用,由于目标桶经过复制后也会存储数据,您还需支付目标桶数据的存储费用。
如果您修改了复制对象的存储类别,复制到目标桶的数据按新的存储类型计算存储费用。
如果历史对象经过了服务端加密,计算存储费用时,按照密文长度计算。
按需计费
资源包(各存储类别对应的存储包)
前提条件
- 已在某个账号某个区域下创建源桶。
- 已在另一个账号的另一个区域下创建目标桶。创建桶操作请参见创建桶。
- 使用OBS控制台、API、obsutil工具进行跨账号跨区域对象复制时,源桶的版本号必须为3.0及以上,并且源桶所在区域支持跨账号跨区域复制功能。
- 必须先在目标桶中配置桶策略,授予源桶拥有者除“DeleteBucket”、“PutBucketPolicy”和“PutBucketAcl”外的所有权限,才能将源桶中的对象复制到目标桶中。相关权限配置,请参见自定义创建桶策略(可视化视图)。
- 如果源桶中有非源桶拥有者上传的对象时,必须先在源桶配置桶ACL,给源桶的拥有者授予“FULL_CONTROL”权限,同时设置对象读权限(对应API中“Delivered”设为“true”),才能将源桶中其他账号的对象复制到目标桶中。可通过编辑源桶拥有者的ACL实现。

- 如果在复制源对象内容到目标桶的同时,还需要复制源对象的ACL到目标桶,则必须先在目标桶中设置桶ACL,给源桶拥有者授予“FULL_CONTROL”权限,同时设置对象读权限(对应API中“Delivered”设为“true”)。




