同区域复制(Same-Region Replication)是指将源存储空间(Bucket)中的文件(Object)的创建、更新和删除等操作自动、异步(近实时)地复制到相同地域下的目标Bucket。

使用场景

当地法规遵从性规定不允许数据离开您的国家或地区时,您可以通过配置同区域复制规则将源Bucket的数据以副本的形式存储在相同地域内的多个目标Bucket。目标Bucket中的Object是源Bucket中Object的精确副本,它们具有相同的Object名、版本信息、元数据以及内容,例如创建时间、拥有者、用户定义的元数据、Object ACL、Object内容等。

功能特性

同区域复制支持特性如下:

  • 相同地域Bucket之间的数据同步
    源Bucket中的数据可以同步到相同地域的多个目标Bucket。单个Bucket关联的复制规则数量不能超过100条。这些规则中,该Bucket既可以作为源Bucket,也可以作为目标Bucket。1

    如果您的业务场景涉及更大数量的复制规则,请联系技术支持

  • 实时同步数据

    对于数据的增加、删除、修改能够实时监控并同步到目标地域Bucket。对于2 MB以下文件,能够做到分钟级别信息同步,保证两边数据的最终一致。

  • 历史数据迁移

    迁移历史数据,让源Bucket中历史数据也能进行同步,形成相同的两份数据。

  • 实时获取同步进度

    能够针对实时同步数据展示最近同步的时间节点,针对历史数据的迁移展示迁移的百分比。

  • 版本控制

    对同时处于开启版本控制状态的源Bucket和目标Bucket,保证其数据版本的最终一致性。如果数据同步方式为写(增、改)同步,则源Bucket指定版本删除的操作不会同步到目标Bucket,源Bucket创建的删除标记会同步到目标Bucket。

  • 复制加密数据

    支持复制未加密的Object和使用SSE-KMS、SSE-OSS方式进行服务器端加密的Object。

  • 配置事件通知以及实时日志查询

    您可以通过以下两种方式准确获取同区域复制过程中源Bucket以及目标Bucket内Object的新增、更新、删除、覆盖等变化情况。

    • 在设置事件通知规则中将事件类型配置为ObjectReplication:ObjectCreatedObjectReplication:ObjectRemoved以及ObjectReplication:ObjectModified。详情请参见事件通知概述
    • 在OSS管理控制台开启实时日志查询,获取Object操作的统计信息。详情请参见查询实时日志

注意事项

  • 相关费用

    开启同区域复制后,同区域的两个Bucket之间复制文件时会产生数据流量,但暂不收取数据流量费用。此外,每同步一个Object,OSS都会累计请求次数,但暂不收取请求费用。

  • 复制时间

    同区域复制采用异步(近实时)复制,数据复制到目标Bucket需要一定的时间,通常几分钟到几小时不等,取决于数据的大小。

使用限制

  • 仅允许对同时处于非版本化或开启版本控制状态的两个Bucket开启同区域复制。
  • 处于同步状态下的两个Bucket不允许改变其版本控制状态。
  • 对于处于同步状态的两个Bucket,由于您可以同时操作这两个Bucket,源Bucket复制过去的Object可能存在覆盖目标Bucket中同名Object的风险。
  • 不支持将源Bucket中冷归档存储类型Object同步到目标Bucket。
  • 不支持将源Bucket中Appendable类型的Object同步到冷归档存储类型的目标Bucket。

使用OSS控制台

  1. 登录OSS管理控制台
  2. 在左侧导航栏,单击Bucket列表,然后单击任意待开启同区域复制的Bucket。
  3. 在左侧导航栏,选择冗余与容错 > 同区域复制
  4. 同区域复制区域,单击设置
  5. 单击同区域复制
  6. 同区域复制面板,按如下说明配置各项参数。
    参数 说明
    源Bucket地域 您当前Bucket所在地域。
    源Bucket 您当前Bucket名称。
    目标地域 选择目标地域,该地域与源Bucket所在地域相同。
    目标Bucket 选择将源Bucket数据同步到相同地域下哪个目标Bucket。
    数据同步对象 选择需要同步的源数据。
    • 全部文件进行同步:将该Bucket内所有的Object同步到目标存储空间。
    • 指定文件名前缀进行同步:将该Bucket内指定前缀的Object同步到目标Bucket。最多可以添加10个前缀。
    Object标签 同步拥有指定标签的Object到目标Bucket。设置方法为选中设置规则后添加标签(键-值对),最多可添加10个标签。

    要设置该参数,必须满足以下条件:

    • 已设置Object标签。具体操作,请参见设置对象标签
    • 源Bucket与目标Bucket需同时处于华东1(杭州)或者澳大利亚(悉尼)地域。
    • 源Bucket和目标Bucket均已开启版本控制。
    • 数据同步策略为增/改 同步
    数据同步策略 选择数据同步的方式。
    • 增/改 同步:仅将该Bucket内Object新增和更新操作同步到目标Bucket。
    • 增/删/改 同步:将该Bucket内Object的新增、更新、删除操作同步到目标Bucket。
    同步历史数据 选择是否同步复制规则生效前源Bucket中已有的历史数据。
    • 同步:将历史数据同步至目标Bucket。
      注意 同步历史数据时,从源Bucket复制的Object可能会覆盖目标Bucket中同名的Object。为避免这部分文件丢失,建议您对源Bucket和目标Bucket开启版本控制。
    • 不同步:仅同步复制规则生效后上传或更新的Object。
    KMS加密目标对象 在源Object或者目标Bucket使用了KMS托管密钥加密方式(即SSE-KMS,指定CMK ID)的情况下,要将Object复制到目标Bucket,则必须选中KMS加密目标对象,并配置以下参数:
    • 使用的KMS密钥:为目标Object指定加密的KMS密钥。

      您需要提前在KMS平台创建一个与目标Bucket相同地域的KMS密钥。具体操作,请参见创建密钥

    • 授权角色:授权一个RAM角色对目标Object执行KMS加密操作。
      • 新建角色:新建RAM角色对目标Object执行KMS加密,角色名称格式为kms-replication-源Bucket名称-目标Bucket名称
      • AliyunOSSRole:使用AliyunOSSRole角色对目标Object执行KMS加密。若您之前未创建AliyunOSSRole角色,当您选择此项时,OSS将自动创建AliyunOSSRole角色。
    说明 您可以通过HeadObjectGetBucketEncryption分别查询源Object和目标Bucket的加密状态。
  7. 单击确定
    • 当同区域复制规则创建完成后,不允许对此规则进行编辑或删除。
    • 同步任务会在同区域复制规则配置完成后即刻启动,您可以在同区域复制页面查看同步进度。
    • 数据复制到目标Bucket需要的时间取决于数据的大小,通常几分钟到几小时不等。

使用REST API

如果您的程序自定义要求较高,您可以直接发起REST API请求。直接发起REST API请求需要手动编写代码计算签名。更多信息,请参见PutBucketReplication