文档首页/ 迁移中心 MgC/ 最佳实践/ 存储迁移相关最佳实践/ 通过列表迁移方式迁移对象存储数据
更新时间:2025-08-22 GMT+08:00
分享

通过列表迁移方式迁移对象存储数据

本文介绍如何使用迁移中心(MgC)的存储迁移工作流,进行列表迁移前的准备工作。

适用场景

阿里云对象存储(Object Storage Service,简称OSS)数据迁移至华为云对象存储 OBS,迁移对象个数超过10万上限时,任务类型可采用迁移中心(MgC)存储迁移工作流下的列表迁移。

前提条件

  • 注册华为账号并开通华为云,完成实名认证
  • 已获取源端和目的端账号的AK/SK。
    • 源端桶对应账户需要的权限包括:列举桶,获取桶位置,列举对象,获取对象元数据,获取对象内容。获取方式参见源端桶权限获取
    • 目的端桶需要的权限包括:列举桶,获取桶位置,列举对象,获取对象元数据,获取对象内容,上传对象,列举已上传段,取回归档存储对象。获取方式参见目的端桶权限获取
  • 已在OBS服务中创建桶。

操作步骤

  1. 在阿里云OSS生成桶清单。

    1. 登录阿里云OSS控制台,单击Bucket列表。
    2. 进入Bucket列表,单击对应的Bucket名称。
    3. 进入文件列表页面,单击数据管理>Bucket清单。
    4. 进入Bucket清单页面,单击创建清单,填写规则名称,选择对应的存储清单Bucket,单击确定完成创建。
    5. 返回单击操作列“查看清单结果”,当“data/ ”路径下存在压缩包表明桶清单已经生成。

  2. 对桶清单数据进行加工。

    1. 在阿里云准备一台4U8G和100G磁盘空间(根据数据量)的Linux虚拟机,并为该虚拟机绑定EIP。
    2. 用root用户登录虚拟机。
    3. 执行以下命令,安装zip。
      yum install zip unzip
    4. 执行以下命令,安装ossutil。
      sudo -v ; curl https://gosspublic.alicdn.com/ossutil/install.sh | sudo bash
    5. 配置ossutil,参考配置ossutil
      ossutil config
      根据提示设置配置文件路径:
        1)配置文件路径
        2)提示工具语言 EN/CH
        3) AK SK
    6. 下载桶清单文件。
      ossutil64 cp oss://bucketname/path/data/ csvFile/ --include "*.gz" -r
       # bucketname 对应清单桶名
       # path 清单存储路径
       # csvFile 下载文件存储目录
       # --include "*.gz" 下载包含*.gz的文件
       # -r 递归目录下的文件下载
    7. 执行以下命令,安装gzip。
      yum install gzip
    8. 执行以下命令,进入压缩包路径。
      cd csvFile
      # csvFile 为2.5中下载文件存储目录
    9. 执行以下命令,解压桶清单文件。
      gzip -d *.csv.gz
    10. 选择对应的csv,执行以下命令,提取仅含资源key对象名(url)的清单文件。
      cat csvname | awk -F ",\"" '{print $2}' | awk -F "\"" '{print $1}' > listFile
      # csvname 需要处理的文件名
      # listFile 资源的列表文件,需要为txt
    11. 编写sh文件拆分列表文件,sh命令如下。其中xxxx.txt为上一步骤中列表文件。
      #!/bin/bash
       sourceFile="xxxx.txt"
       splitLine=100000
       split -l $splitLine -d -a 5 --additional-suffix=.txt "$sourceFile"  xxxx-
       mkdir xxxx-file
       mv xxxx-*.txt xxxx-file

  3. 2.j所产生的待迁移的列表清单放置目标桶目录下。

    1. 2.a的虚拟机上安装obsutil,参考下载和安装obsutil
    2. 初始化配置,参考初始化配置
    3. 执行以下命令,进入obsutil脚本路径,上传文件。
      ./obsutil cp filePath obs:// bucketname -f -r
      # filePath 列表文件所在文件夹
      # bucketname对应的目标桶

  4. 在MGC上创建存储迁移工作流,进行列表迁移

相关文档