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

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

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

适用场景

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

前提条件

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

步骤一:生成阿里云OSS桶清单

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

步骤二:加工桶清单数据

  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

步骤三:上传列表清单至华为云OBS目标桶

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

步骤四:创建对象存储迁移任务

  1. 登录迁移中心管理控制台。在左侧导航栏的项目下拉列表中选择创建的应用迁移项目。
  2. 在左侧导航栏选择“存储迁移 > 对象存储迁移”,进入“对象存储迁移”页面。
  3. 单击“独享集群 > 创建迁移任务”按钮,进入“创建迁移任务”页面。
  4. 根据表1,配置基础信息参数。

    表1 基础信息参数说明

    参数

    说明

    名称

    用户自定义。只支持输入英文、数字、中文、中划线、下划线以及小数点,必须以中文、英文或者数字开头,且不能以小数点开头或结尾。

    区域

    下拉菜单中选择目的端所在区域。

    描述

    用户自定义。字符长度限制255,只支持输入英文、数字、中文、中划线、下划线、逗号、句号、顿号、空格以及小数点,且不能以小数点、中划线或下划线开头。

    集群

    选择用于迁移的集群,集群中包含master节点、迁移节点和列举节点。如果没有可用集群,可以新建集群。

    说明:

    master节点为系统默认创建,无需配置。

  5. 根据表2、表3,配置源端、目的端信息。

    表2 源端信息参数说明

    参数

    说明

    备注

    数据站点类型

    -

    开启KMS加密

    否:不启用KMS密钥来加密您的源端凭证。

    数据站点类型选择云平台时填写。

    是:启用KMS密钥来加密您的源端凭证。

    启用该功能,需要同意委托授权OMS访问KMS。同意后会授予自定义策略,自定义策略包含的内容如下:

    • 查询密钥信息:"kms:cmk:get"
    • 解密数据密钥:"kms:dek:decrypt"
    • 创建不含明文数据密钥:"kms:dek:create"

    如果您有授权资格,则可直接授权。授权成功后,无需再次授权。授权成功后,进行如下操作:

    从KMS密钥中选择,在下拉菜单中选择自定义密钥。如果还未创建密钥,创建方式请参见创建密钥。暂时只支持的密钥算法为AES_256和SM4。

    凭证

    单击下拉选择凭证。如未提前添加凭证,请单击“新增凭证”,填写凭证名称、选择认证方式、输入AK、SK,单击“保存”完成添加。

    桶

    输入源端需要迁移的桶名。

    说明:
    不支持源端路径为软链接路径的迁移。如果源端包含软链接,请进行如下处理:
    • 填写实际的文件路径。
    • 迁移完成后,手动在目的端创建相应的软链接。

    对象存储终端地址

    输入源端桶所在区域的终端节点(Endpoint)信息。

    例如:站点类型选择阿里云OSS,源端桶所在区域为华东1(杭州),则输入“oss-cn-hangzhou.aliyuncs.com”。

    桶类型

    根据桶的实际类型选择。桶类型可以通过查看桶的基本信息获取。

    数据站点类型为华为云OBS时选择。

    appId

    填写腾讯云appId。

    说明:

    您可以在腾讯云控制台账号信息页面查看appId。

    数据站点类型为腾讯云COS时填写。

    鉴权类型

    鉴权类型的选择支持以下两种:

    • 连接字符串。
    • 存储账户名称+密钥。

    获取以上两种鉴权类型的方式请参考:如何获取微软云的访问凭证。

    数据站点类型为微软云BLOB时配置。

    列表路径

    输入存放列表文件的路径。列表文件存放地址必须与目的端桶处于同一区域。将源端待迁移的文件URL和对象名称写入列表文件(每行只能写一个URL和对象名称),列表文件需要提前创建。

    数据站点类型选择HTTP/HTTPS数据源时填写。

    表3 目的端信息参数说明

    参数

    说明

    备注

    数据站点类型

    根据源端存储类型,选择华为云对应的存储类型。

    -

    凭证

    单击下拉选择凭证。如未提前添加凭证,请单击“新增凭证”,填写凭证名称、选择认证方式、输入AK、SK,单击“校验并保存”,完成添加。

    数据站点类型选择华为云OBS时填写。

    桶

    选择目的端OBS桶。

    说明:

    桶存储类别只支持标准存储和低频访问存储。

    桶类型

    根据桶的实际类型选择。桶类型可以通过查看桶的基本信息获取。

    对象存储终端地址

    输入目的端OBS桶所在区域的终端节点(Endpoint)信息。例如:目的端桶所在区域为华北-北京四,则输入“obs.cn-north-4.myhuaweicloud.com”。

    说明:

    可在OBS桶的基本信息查看。

    指定前缀

    将对象迁移到指定前缀,例如:源端对象路径为/A/B/C.txt,目的端前缀配置为/D,迁移后目的端对象路径为/D/A/B/C.txt,前缀字符整体长度不能超过1024。详细介绍请参考设置“保存到指定前缀”参数中的功能介绍。

    开启KMS加密

    否:不启用KMS密钥来加密您的目的端凭证。

    数据站点类型选择华为云OBS/NAS_SMB时填写。

    是:启用KMS密钥来加密您的源端凭证。

    启用该功能,需要同意委托授权OMS访问KMS。同意后会授予自定义策略,自定义策略包含的内容如下:

    • 查询密钥信息:"kms:cmk:get"
    • 解密数据密钥:"kms:dek:decrypt"
    • 创建不含明文数据密钥:"kms:dek:create"

    如果您有授权资格,则可直接授权。授权成功后,无需再次授权。授权成功后,进行如下操作:

    从KMS密钥中选择,在下拉菜单中选择自定义密钥。如果还未创建密钥,创建方式请参见创建密钥。暂时只支持的密钥算法为AES_256和SM4。

    文件存储服务地址

    输入目的端文件系统的挂载地址。挂载地址可以在文件系统列表页面,单击挂载地址后面的图标复制获取。

    数据站点类型选择NAS_SMB/NAS_NFS_V3_MOUNT时填写。

    路径

    输入目的端接收文件的路径,格式为:/文件夹。

    用户名

    输入具有访问目的端文件系统所有文件权限的用户名,例如:administrator。

    数据站点类型选择NAS_SMB时填写。

    密码

    输入用户名对应的密码。

    Windows上的域

    输入对应的域名。

    说明:

    只需输入.com之前的内容,例如:域名为test.com,则输入test。

  6. 根据表4,进行迁移配置。

    表4 迁移配置参数说明

    参数

    子参数

    说明

    迁移方式

    全量迁移

    迁移源端桶/文件夹内的全部数据。

    列表迁移

    通过列表文件过滤迁移,只迁移列表文件中的对象。

    在“列表路径”输入存放在目的端桶的对象列表文件路径。对象列表文件的约束与限制如下:

    • 目的端为OBS
      • 对象列表文件大小不能超过30MB。
      • 对象列表文件类型必须为.txt类型,并且元数据ContentType只能为text/plain。
      • 对象列表文件必须是UTF-8无BOM格式编码格式。
      • 对象列表文件每行只能包含一个对象名称,且对象名称使用URL Encode编码。
      • 对象列表文件行长度不超过16KB,否则迁移失败。
      • 对象列表文件元数据中不能设置ContentEncoding,否则迁移失败。
      • 对象列表文件行数不超过10,000行。
    • 目的端为NAS
      • 对象列表文件大小不能超过30MB。
      • 对象列表文件类型必须为.txt类型。
      • 对象列表文件必须是UTF-8无BOM格式编码格式。
      • 对象列表文件每行只能包含一个对象名称,且对象名称使用URL Encode编码。
      • 对象列表文件行长度不超过16KB,否则迁移失败。
      • 对象列表文件行数不超过10,000行。
    注意:

    前缀迁移

    仅支持云平台数据类型。

    在“前缀路径”输入对象名称或者名称前缀,则只迁移与输入对象名称或名称前缀一致的对象。

    须知:
    • 输入对象前缀路径时,如果对象文件在源端桶的根目录下,则直接添加前缀;如果对象文件存在目录路径,则需要在对象前缀前添加对象文件所在的目录路径。格式为:文件夹/对象前缀。
    • 多个前缀之间用英文逗号分隔。

    并发子任务数

    -

    默认5,支持用户自定义。配置的数目不能超过可用迁移节点数x10。例如:可用的迁移节点数为2,则最大子任务数配置数目需要≤20。

    同名覆盖方式

    不覆盖

    对于源端和目的端存在的同名文件,跳过源端文件,保留目的端文件。

    警告:
    • 首次迁移时选择“不覆盖”,不会迁移源端中父文件夹的属性到目的端,可能会造成文件夹属性不完整。为规避这一风险,首次迁移时请谨慎使用“不覆盖”策略。
    • 选择“不覆盖”策略进行数据迁移时,如果迁移任务因错误中断后重启或从暂停状态恢复,可能会造成部分数据未完全迁移,而任务显示成功的现象,影响数据的完整性。为规避这一风险,请谨慎使用“不覆盖”策略。

    直接覆盖

    对于源端和目的端存在的同名文件,源端文件直接覆盖目的端文件。

    对象大小与最后修改时间覆盖

    • 对于文件迁移:源端和目的端存在的同名文件,保留最后修改时间较新的文件;如果最后修改时间相同,比较文件大小,大小不同则源端覆盖目的端文件;如果最后修改时间和大小都相同,则跳过;
    • 对于文件夹迁移:当文件迁移完成后再比对文件夹大写、时间和权限,如果文件夹大小不同/时间不相同/权限不相同,则源端覆盖目的端文件夹;
      说明:

      对于空文件夹,覆盖策略与文件相同。

    CRC64对比覆盖

    迁移前,对于源端和目的端存在的同名对象,对比源端和目的端对象元数据中的CRC64值,相同则跳过,不同则覆盖。如果源端与目的端对象元数据中不存在CRC64值,则默认使用大小/最后修改时间对比覆盖策略执行。
    说明:
    • 目前仅支持华为云、阿里云、腾讯云。
    • 目的端OBS桶需开启CRC64特性白名单。

    一致性校验

    对象大小与最后修改时间校验

    默认配置,通过对比源端和目的端对象大小与最后修改时间,判断迁移后数据是否完整。

    CRC64校验

    通过对比源端和目的端对象元数据中CRC64值,校验数据一致性。当源端数据或目的端数据未含CRC64,OMS会生成CRC64值。注意:CRC64校验可能会产生额外的外网流量费用和请求费用。详见一致性校验说明。
    说明:
    • 目前仅支持华为云、阿里云、腾讯云。
    • 目的端OBS桶需开启CRC64特性白名单。

    迁移元数据

    -

    选择是否迁移元数据。

    • 勾选,则迁移源端对象元数据。
    • 不勾选,仅迁移Content-Type和Content-Encoding元数据。如果源端存储服务提供商未提供该元数据(如优刻得未提供Content-Encoding),则该元数据将不会被迁移。

    清理集群

    -

    选择工作流是否创建清理集群步骤。

    • 勾选,迁移工作流将自动创建清理集群步骤,您还可以继续配置是否删除NAT网关、安全组、VPCEP服务等。
    • 不勾选,迁移工作流不创建清理集群步骤,工作流创建30天后系统会自动清除集群。

  7. (可选)根据表5,配置高级选项。

    表5 高级选项参数说明

    参数

    说明

    目的端存储类型

    选择迁移到华为云OBS后,对象的存储类型。存储策略说明请参见存储类型介绍。

    KMS加密

    仅目的端选择华为云OBS时支持配置。

    • 不勾选,迁移后对象状态与目的端桶级服务端加密状态保持一致。
    • 勾选,所有对象在迁移到OBS桶后都将被加密存储。
    说明:
    • 使用KMS服务端加密可能会降低迁移速率10%左右。
    • 目的端桶所在区域支持KMS加密时,此参数才可用。

    解冻归档数据

    • 不勾选:如果遇到归档类型对象,则直接判定该对象迁移失败并跳过,继续迁移其余对象。
    • 勾选:如果遇到归档类型对象,则自动解冻该对象并进行迁移。如果解冻失败,则判定该对象迁移失败并跳过,继续迁移其余对象。
    说明:

    在数据迁移的列举阶段,系统会对列举出的所有数据发起取回操作,源端云服务商会收取相应的API调用费用和存储费用。为了避免产生多余的解冻费用,建议您优先在源端手动操作解冻后再开始迁移。

    过滤配置

    通过黑、白名单以及时间段过滤迁移文件。过滤策略详细介绍请参见过滤策略说明。

    CDN迁移支持

    当默认域名不能满足您的迁移需求,比如您需要一个自定义域名以便使用CDN降低源端出口下载流量的费用,可以勾选此选项。在域名输入框中输入自定义域名,并选择传输协议。HTTP协议安全级别低于HTTPS协议,推荐使用HTTPS协议。

    源端为阿里云OSS、腾讯云COS时,如果使用了CDN鉴权,还需要选择“鉴权类型”并输入“鉴权密钥”。

    SMN消息发送配置

    选择是否使用SMN消息通知功能,该功能可以通知您迁移任务的结果。

    • 不勾选,不接收SMN消息。
    • 勾选,接收SMN消息。选择SMN主题,会向该主题的订阅者发送消息;选择消息发送语言;选择发送消息的触发条件,支持同时勾选。

    流量控制

    设置迁移任务在指定时段的最大流量带宽。

    • 不勾选,不进行流量控制。
    • 勾选,进行流量控制。分别设置“开始时间”、“结束时间”和“限速”数值。
      例如:设置开始时间08:00、结束时间12:00、限速为20 MB/s,当迁移任务运行到(08:00~12:00)该时间段时,最大迁移速度将限制为20 MB/s。该时间段以外,迁移速度不做限制。
      说明:
      • 限速的数值范围:1~1048576 MB/s 。
      • 创建多条限速规则时,限速时段不能重叠。

        例如:已有一条规则,限速时段是8:00~12:00,那么7:00~13:00,7:00~8:00,9:00~12:00...有时间重叠的规则,都无法创建成功。

      • 开始时间不能晚于等于结束时间。

        例如:不能设置时间段为23:00~次日01:00。

      • 最多可以创建5条记录。
      • 时区时间以目的端Region的当地时间为准。

    定时迁移

    设置迁移任务在指定时间内自动迁移。

    • 不勾选,手动启动/暂停迁移任务。
    • 勾选,设置任务在指定时间范围内进行迁移,指定时间以外则暂停迁移。

      例如:

      • 设置开始时间08:00、结束时间12:00,则迁移任务会在每天早晨08:00至中午12:00该时间段进行迁移。该时间段以外,则迁移任务暂停。
      • 设置开始时间12:00、结束时间08:00,则迁移任务会在每天中午12:00至次日早晨08:00该时间段进行迁移。该时间段以外,则迁移任务暂停。

步骤二:确认信息

  1. 迁移任务配置完成后,单击“下一步:确认信息”按钮,进入确认信息页面。
  2. 确认配置信息无误后,单击“确认创建迁移任务”,弹出启动迁移任务窗口,此时工作流已创建完成。

    • 如果您希望立即开始迁移,则单击“确认”按钮,立即启动任务。
    • 如果仅需保存任务配置暂不启动迁移,则单击“取消”。此时迁移任务状态为“待启动”,尚未开始迁移。后续可在任务列表中单击“启动”按钮启动迁移。

相关文档