更新时间:2024-04-17 GMT+08:00

使用obsutil实现客户端跨区域复制

obsutil支持使用客户端跨区域复制模式进行复制,即通过数据流的方式从源桶直接复制数据到目标桶,且两个桶可以是任意两个OBS服务的桶;借助客户端跨区域复制模式即可实现相同账户下不同区域桶或不同账户间桶内对象的复制;跨账号复制对象具体步骤如下:

  1. 使用obsutil config命令配置源桶对应账号的AK、SK及endpoint信息:

    • Windows操作系统
      obsutil config -interactive -crr
    • Linux操作系统
      ./obsutil config -interactive -crr

  2. 使用obsutil config命令配置目标桶对应账号的AK、SK及endpoint信息:

    • Windows操作系统
      obsutil config -interactive
    • Linux操作系统
      ./obsutil config -interactive

  3. 调用cp命令,指定采用跨区域复制模式将源桶对象复制到目标桶:

    • Windows操作系统
      obsutil cp obs://src-bucket obs://dst-bucket -f -r -crr
    • Linux操作系统
      ./obsutil cp obs://src-bucket obs://dst-bucket -f -r -crr

  • 要使用跨区域复制模式,必须指定-crr参数;如果设置了该参数,必须确保更新了配置文件中客户端跨区域复制的相关配置信息,具体可参考更新配置文件
  • 复制时源桶对应的配置信息为配置文件中的:akCrr/skCrr/tokenCrr/endpointCrr,目标桶对应的配置信息为配置文件中的:ak/sk/token/endpoint;
  • 对于同一账号下不同区域的桶,也可以按照上述步骤实现同一账号下跨区域复制对象的功能;同时也需要按照步骤一、二设置源桶及目标桶的账号信息。

使用-crr参数时,不会复制源对象的标准元数据信息,包括Cache-Control、Expires、Content-Encoding、Content-Disposition、Content-Type、Content-Language6个标准头域。