文档

OSS的源Bucket配置数据复制规则后目标Bucket中无相应的数据

更新时间:

问题描述

阿里云对象存储OSS为满足Bucket跨区域容灾或用户数据复制的需求,在源存储空间(Bucket)配置了跨区域复制规则或同区域复制规则后,对象副本未出现在目标Bucket。跨区域复制的使用场景及限制,请参见跨区域复制介绍

问题原因

Bucket跨区域复制或同区域复制时,对象副本未同步到目标Bucket中原因如下:

  • 时间限制

  • 源Bucket配置问题

  • 复制机制限制

  • 版本控制状态不一致

  • Bucket Policy设置错误

解决方案

在Bucket跨区域复制或同区域复制过程中,当对象副本未同步到目标Bucket时,请根据以下几种可能原因排查并修复问题:

  • 时间限制:数据复制采用异步(近实时)复制的机制,将数据复制到目标Bucket需要一定的时间,通常几分钟到几小时不等,取决于数据的大小。如果要复制的对象较大,请稍等片刻,再检查对象副本是否出现在目标Bucket中。您可以在源Bucket管理页面,选择数据管理>跨区域复制,查看同步进度。

  • 源Bucket配置问题

    • 数据复制状态是否为已开启(Enabled)。

    • 前缀(Prefix)是否正确。

      • 同步指定对象:如果需要同步源Bucket中的指定对象到目标Bucket,请将Prefix设置为指定对象名称。例如,Prefix设置为log,则仅复制log/date1.txt、log/date2.txt等以log开头的对象。与指定Prefix不匹配的对象不会复制到目标Bucket,例如date3.txt。

        说明

        Prefix是单纯的string匹配,不需要通配符,log/* 为错误的配置方法。

      • 同步所有对象:如果需要将源Bucket中的全部对象复制到目标Bucket时,请将Prefix置空。具体设置方法如下:

  • 复制机制限制:如果Bucket中的某个对象是另一个复制配置创建的副本,则OSS不会复制该对象。例如,您配置了Bucket A同步到Bucket B,Bucket B再同步到Bucket C,则OSS不会将从Bucket A同步到Bucket B的对象副本复制到Bucket C。

  • 版本控制状态不一致:开启数据同步的源Bucket和目标Bucket的版本控制状态必须一致,即这两个Bucket同时处于非版本控制状态,或者都已开启版本控制。

  • Bucket Policy设置错误:如下所示,如果Bucket Policy拒绝(Deny)源Bucket或目标Bucket中列举的任意一个操作(Action),则无法将源Bucket中的对象复制到目标Bucket,为确保源Bucket中的对象复制到目标Bucket,请将以下源Bucket以及目标Bucket的Effect修改为Allow

    • 源Bucket

              "Effect": "Deny",
              "Action": [
               "oss:ListObjects",
               "oss:ListMultipartUploads",
               "oss:ListParts",
               "oss:GetObject",
               "oss:GetObjectTagging",
               "oss:GetObjectVersion"
               ],

    • 目标Bucket

      "Effect": "Deny",
      "Action": [
               "oss:GetObject",
               "oss:PutObject",
               "oss:RestoreObject",
               "oss:DeleteObject",
               "oss:AbortMultipartUpload",
               "oss:ListParts",
               "oss:PutObjectAcl",
               "oss:GetObjectTagging",
               "oss:PutObjectTagging",
               "oss:DeleteObjectTagging",
               "oss:GetObjectVersion",
               "oss:DeleteObjectVersion",
               "oss:PutObjectVersionAcl",
               "oss:PutObjectVersionTagging",
               "oss:GetObjectVersionTagging",
               "oss:DeleteObjectVersionTagging",
               "oss:RestoreObjectVersion"
               ],
  • 本页导读 (1)
文档反馈