工具介绍

qscamel 是一个基于 Goroutine 池实现并发机制的、高效的、端点间迁移数据的工具,有着如下特性。

  • 采用简单,易用的任务管理方式,实现完全自动化的重试机制,无须人工介入。

  • 创建迁移任务时,支持 copyfetchdelete 等迁移任务类型;支持迁移指定时间后上传的文件;支持对任务请求次数的限制,从而全面覆盖用户的迁移需求。

  • 执行迁移任务时,支持从任务中断处续传,从而节省用户的时间,提高迁移效率。

  • 迁移任务执行中,统计当前已成功迁移的总容量与总的文件数以及迁移任务的中间状态,并输出相应的统计信息,方便用户实时了解迁移任务的执行状态。

  • 在最终迁移任务完成时,输出各统计信息,并将迁移失败的文件列表显示。

命令详解

qscamel 的各命令行,使用方法类似。这里以 run 命令为例,对其参数与用法进行说明。

用户可通过 run 命令来创建或者恢复一个迁移任务。当调用该命令时,qscamel 会根据任务名查询数据库,并检查任务文件内容是否有更新。

  • 若有同名任务,且任务文件内容有更新,qscamel 会报错并退出。

  • 若有同名任务,且任务文件没有更新,qscamel 将恢复该任务,继续执行。

  • 若无同名任务,qscamel 会对任务内容的 sha256 校验和进行计算,并将结果保存于数据库中。

同时,使用 run 命令,有如下注意事项。

说明
  • 数据迁移任务在创建成功后就不能修改。

  • 创建后的任务,无论执行完成或执行失败,均不会自动从数据库中删除。

操作说明

  • 查看 run 的使用教程

    qscamel run -h

    命令行回显

    Create or resume a task
    
    Usage:
      qscamel run [task name or task path] [flags]
    
    Flags:
      -h, --help          help for run
      -t, --task string   task path
    
    Global Flags:
      -c, --config string   config path (default "~/.qscamel/qscamel.yaml")
    说明

    用户可以通过 -c 或者 --config 参数来指定自定义配置文件的位置。

  • 创建一个新的数据迁移任务

    qscamel run <task-name> -t </path/to/task/file>

    参数说明

    参数 说明

    task-name

    为新建数据迁移任务名,须唯一。

    /path/to/task/file

    任务文件。

  • 恢复一个数据迁移任务

    qscamel run <task-name>
    说明
    • 由于该操作用于恢复一个历史任务,故 <task-name> 须为原任务名。

    • 由于任务文件没有更新,故命令行中省略了任务文件名,qscamel 会自动调用历史任务文件。

    • 命令行中也可添加原任务文件 -t /path/to/task/file,若添加该参数,则须确保任务文件没有变更,否则该操作会报错。

  • 再次创建同名任务

    1. 删除任务

      qscamel delete <task-name>
    2. 创建任务

      qscamel run <task-name> -t </path/to/task/file>

命令简介

命令 说明 示例

run

用来创建或者恢复一个迁移任务。

qscamel run task-name -t /path/to/task/file

delete

用来删除一个已经创建的任务。

qscamel delete task-name

status

用来查询展示所有任务的状态。

qscamel status

clean

用来删除所有已经完成的任务。

qscamel clean

version

用来查询当前 qscamel 的版本信息。

qscamel version

使用流程

使用 qscamel 工具进行数据迁移的操作流程如下。

  1. 根据操作系统,分别获取适用于 Linux,MacOS 以及 Windows 操作系统的最新版本的 qscamel 工具。

  2. 更新配置文件 ~/.qscamel/qscamel.yaml,文件内容如下。

    concurrency: 0
    log_level: info
    pid_file: ~/.qscamel/qscamel.pid
    log_file: ~/.qscamel/qscamel.log
    database_file: ~/.qscamel/db

    参数说明

    参数 说明

    concurrency

    用于控制同时启用的任务并发数量。 若没有设置,或者设置为 0, qscamel 将会使用 逻辑 CPU 数量 * 100 作为该项的值。

    log_level

    用于控制日志的级别。日志内容显示从多到少依次可设置为 debuginfowarnerrorfatalpanic

    pid_file

    用于指定 PID 文件存放目录。

    log_file

    用于指定日志文件存放目录。

    database_file

    用于指定数据库文件存放目录。

    说明
    • 各配置项均有默认值,无特殊需求,用户无需对其进行修改。

    • qscamel 默认从 ~/.qscamel/qscamel.yaml 读取配置文件,用户也可以自定义配置文件路径。

  3. 创建数据迁移任务文件,文件格式为 .yaml,文件内容如下。

    type: copy
    
    source:
      type: s3
      path: /path/to/source
      options:
        ......
    
    destination:
      type: qingstor
      path: /path/to/destination
      options:
        ......
    
    multipart_boundary_size: 2147483648
    ignore_existing: last_modified
    
    # 忽略这个时间之前的数据, 无默认值
    ignore_before: 2023-01-30 12:00:00
    # 一秒钟限制请求数, 默认 1000
    rate_limit: 1000

    参数说明

    参数 说明

    type

    用于定义该任务的类型。可选值说明如下。

    • copy 将会从 source 指定的端点读取文件,并写入到 destination 指定的端点。

    • fetch 将会从 source 指定的端点获取文件的下载链接,并使用 destination 指定的端点的 fetch 功能对其进行拉取。

    • delete 将会从 source 指定的端点获取文件的信息,并在 destination 指定的端点将其删除。

    source

    标识后续字段为任务的源端点信息。

    destination

    标识后续字段为任务的目标端点信息。

    type

    当前端点的类型。可选值参考任务示例中各端点的设置。

    • source 端点可选值为 qingstors3fsfilelistossazblobcosgcshdfsqiniuupyun

    • destination 端点可选值为 qingstors3fs

    path

    当前端点的路径,须为目录名。以 / 结尾。

    • 如果是迁移根目录或者 Bucket 下所有文件,则填写内容为 path: /

    • 如果需要迁移指定目录或者 Bucket 下指定前缀的文件,则填写内容为 path: /log/2023/06/

    options

    标识后续字段为可选字段。不同端点的可选字段,会有区别,详情可参考任务示例中各端点的设置。

    multipart_boundary_size

    设置使用分段上传的文件大小,单位为 Byte,当文件大于该数值时,将会使用分段上传。

    • 可选值为 1 ~ 5368709120

    • 默认值为 2147483648

    ignore_existing

    用于控制是否跳过已经存在的文件,为空或未配置时将会禁用该配置,即总是覆盖。可选值如下。

    • last_modified 将会检查目标的 LastModified 是否比源站要大,比源站大,则跳过。

    • md5sum 将会对文件做完整的 MD5 计算,当 MD5 相同时会跳过。

    ignore_before

    这个时间点之前上传或创建的数据不作迁移,无默认值,需根据实际情况进行填写。

    rate_limit

    一秒钟内对目标端上传请求的次数限制,默认值为 1000

  4. 执行如下命令行,创建数据迁移任务。命令行各参数参考命令详解

    qscamel run <task-name> -t <task-file-path>

    命令行输出结果示例

    • 示例一

      迁移任务执行中,统计当前已成功迁移的总容量与总的文件数以及迁移任务的中间状态,并输出相应的统计信息。

      INFO[2023-06-26T16:34:21+08:00] ====Success Count: 15  Success Size: 501326====
    • 示例二

      迁移任务完成时,输出各统计信息。

      INFO[2023-06-26T16:34:28+08:00] ====Final Success Count: 19  Final Success Size: 21926478====
      INFO[2023-06-26T16:34:28+08:00] ====Final Failed Count: 1  Final Failed filename: [test/test.txt]====
    • 示例三

      执行迁移任务时,支持从任务中断处续传。该过程中的输出结果如下所示。

      • 第一次上传

        INFO[2023-06-26T16:47:03+08:00] Current version: 2.0.22.
        INFO[2023-06-26T16:47:03+08:00] Task test-01 migrate started.
        INFO[2023-06-26T16:47:04+08:00] Start listing job /.
        INFO[2023-06-26T16:47:04+08:00] Start copying single object 2021-7-13.md.
        INFO[2023-06-26T16:47:04+08:00] Start copying single object a/b/c/d/e/object-181420.
        INFO[2023-06-26T16:47:04+08:00] Start copying single object abyss.
        INFO[2023-06-26T16:47:04+08:00] Start copying single object config.yaml.
        INFO[2023-06-26T16:47:04+08:00] Start copying single object debuglog.txt.
        INFO[2023-06-26T16:47:04+08:00] Start copying single object test$.
        INFO[2023-06-26T16:47:04+08:00] Start copying single object test-abort-01.txt.
        INFO[2023-06-26T16:47:04+08:00] Single object 2021-7-13.md copied.
        INFO[2023-06-26T16:47:04+08:00] Single object abyss copied.
        INFO[2023-06-26T16:47:04+08:00] Start copying single object test-abort.txt.
        INFO[2023-06-26T16:47:04+08:00] Start copying single object test-meta.
        INFO[2023-06-26T16:47:04+08:00] Single object config.yaml copied.
        INFO[2023-06-26T16:47:04+08:00] Single object test$ copied.
        INFO[2023-06-26T16:47:04+08:00] Start copying single object test.txt.
        INFO[2023-06-26T16:47:04+08:00] Start copying single object test/aaaa/hhhh/test.txt.
        INFO[2023-06-26T16:47:04+08:00] Start copying single object test/check.
        INFO[2023-06-26T16:47:04+08:00] Single object test-meta copied.
        INFO[2023-06-26T16:47:04+08:00] Start copying single object test/config.yaml.
      • 中断

        INFO[2023-06-26T17:15:49+08:00] Single object workdir/ ?? copied. INFO[2023-06-26T17:15:49+08:00] Single object 新建文本文档.txt copied. INFO[2023-06-26T17:15:49+08:00] Single object test_rust-01.txt copied.
        INFO[2023-06-26T17:15:52+08:00] Single object test/qscamel_timing_task_windows_amd64.exe copied. INFO[2023-06-26T17:15:52+08:00] ====Success Count: 16 Success Size: 3052110====
        ^CINFO[2023-06-26T17:15:54+08:00] Signal interrupt received, exit for now.
        INFO[2023-06-26T17:15:54+08:00] ====Final Success Count: 16  Final Success Size: 3052110====
        INFO[2023-06-26T17:15:54+08:00] ====All objects migrated successfully====
      • 继续任务

        INFO[2023-06-26T17:15:57+08:00] Current version: 2.0.22.
        INFO[2023-06-26T17:15:57+08:00] Task test-01 migrate started.
        INFO[2023-06-26T17:15:57+08:00] Start copying single object test-abort.txt.
        INFO[2023-06-26T17:15:57+08:00] Start copying single object test.txt.
        INFO[2023-06-26T17:15:57+08:00] Start copying single object test/check.
        INFO[2023-06-26T17:15:57+08:00] Start copying single object test-abort-01.txt.
        INFO[2023-06-26T17:15:57+08:00] Start copying single object test/qscamel.
        INFO[2023-06-26T17:15:57+08:00] Start copying single object a/b/c/d/e/object-181420.
        INFO[2023-06-26T17:15:57+08:00] Start copying single object test/qscamel_v2.0.21_windows_amd64.exe.
        INFO[2023-06-26T17:15:57+08:00] Start copying single object test/mc.
        INFO[2023-06-26T17:15:57+08:00] Start copying single object test/qsctl.
        INFO[2023-06-26T17:15:57+08:00] Start copying single object test/httpie.
        INFO[2023-06-26T17:16:02+08:00] ====Success Count: 16  Success Size: 3052110====
        INFO[2023-06-26T17:16:05+08:00] Single object test-abort-01.txt copied.
        INFO[2023-06-26T17:16:07+08:00] ====Success Count: 17  Success Size: 7246414====
        INFO[2023-06-26T17:16:07+08:00] Single object a/b/c/d/e/object-181420 copied.
        INFO[2023-06-26T17:16:12+08:00] ====Success Count: 18  Success Size: 11440718====
        INFO[2023-06-26T17:16:15+08:00] Single object test-abort.txt copied.
        INFO[2023-06-26T17:16:17+08:00] ====Success Count: 19  Success Size: 19829326====
        INFO[2023-06-26T17:16:17+08:00] Single object test/check copied.
        INFO[2023-06-26T17:16:19+08:00] Single object test.txt copied.
        INFO[2023-06-26T17:16:22+08:00] ====Success Count: 21  Success Size: 40283653====
        INFO[2023-06-26T17:16:25+08:00] Single object test/mc copied.
        INFO[2023-06-26T17:16:26+08:00] Single object test/qsctl copied.
        INFO[2023-06-26T17:16:27+08:00] ====Success Count: 23  Success Size: 81933953====
        INFO[2023-06-26T17:16:32+08:00] Single object
        test/qscamel_v2.0.21_windows_amd64.exe copied.
        INFO[2023-06-26T17:16:33+08:00] Single object test/qscamel copied.
        INFO[2023-06-26T17:16:37+08:00] ====Success Count: 25  Success Size: 144635527====
        INFO[2023-06-26T17:17:20+08:00] Single object test/httpie copied.
        INFO[2023-06-26T17:17:20+08:00] Task test-01 has been finished.
        INFO[2023-06-26T17:17:20+08:00] ====Final Success Count: 26  Final Success Size: 227581527====
        INFO[2023-06-26T17:17:20+08:00] ====All objects migrated successfully====

任务示例

Qingstor 端点信息

山河云对象存储服务,能够用做 qscamel 数据迁移任务中的 sourcedestination 端点,使用 qingstor 作为端点时,需在 options 字段下添加如下配置内容。

  options:
    protocol: https
    host: is.shanhe.com
    port: 443
    zone: jn1
    bucket_name: example_bucket
    access_key_id: example_access_key_id
    secret_access_key: example_secret_access_key
    storage_class: STANDARD
    disable_uri_cleaning: false
    timeout_config:
      connect_timeout: 30
      read_timeout: 30
      write_timeout: 30

options 参数说明

参数 说明

protocol

访问 山河云对象存储的协议类型。可选值 httpshttp

host 的

标识访问 山河云对象存储云服务器名。填写 山河云对象存储的 Global Domain。

port

标识访问 山河云对象存储的端口号。https 协议,端口号为 443http 协议端口号为 80

zone

标识访问 山河云对象存储 Bucket 的所在区域,无需手动配置。

bucket_name

待操作的 山河云对象存储的 Bucket 名称。

access_key_id

山河云对象存储的 Access Key ID。

secret_access_key

山河云对象存储的 Access Key。

storage_class

山河云对象存储所使用的存储级别。

  • 可选值 STANDARDSTANDARD_IA

  • 默认值为 STANDARD

disable_uri_cleaning

是否自动清理 URL,默认为 false

  • path 指定目录中,包含名称为 / 的目录时,该参数需设置为 true

  • path 指定目录为 abc//bcd,该参数需设置为 true 时,目录不作变动,仍然为 abc//bcd;该参数需设置为 false 时,目录转化为 abc/bcd

timeout_config

超时相关配置。

将本地文件拷贝至 QingStor

fs 是指符合 POSIX 标准的文件系统,如 local fs、nfs、s3fs 等。可作为 qscamel 数据迁移任务中的 source 端点与 destination 端点。

如用户需将本地目录 /path/to/source 下的文件 copy 至 山河云对象存储的 example_bucket 下的 /path/to/destination 目录,则可参考以下内容配置任务文件。

type: copy

source:
  type: fs
  path: /path/to/source
  options:
    enable_link_follow: false

destination:
  type: qingstor
  path: /path/to/destination
  options:
    protocol: https
    host: is.shanhe.com
    port: 443
    bucket_name: example_bucket
    access_key_id: example_access_key_id
    secret_access_key: example_secret_access_key

source options 参数说明

参数 说明

enable_link_follow

遇到软连接时,是否上传指向的文件,默认值为 false

将本地文件列表拷贝至 QingStor

filelist 是本地文件列表,可作为 qscamel 数据迁移任务中的 source 端点。

如用户需将本地目录 /path/to/list 下的文件列表 copy 至 山河云对象存储的 example_bucket 下的 /path/to/destination 目录,则可参考以下内容配置任务文件。

type: copy

source:
  type: filelist
  path: /path/to/source
  options:
    list_path: /path/to/list

destination:
  type: qingstor
  path: /path/to/destination
  options:
    protocol: https
    host: is.shanhe.com
    port: 443
    bucket_name: example_bucket
    access_key_id: example_access_key_id
    secret_access_key: example_secret_access_key

source options 参数说明

参数 说明

list_path

待迁移的文件列表,qscamel 将会逐行来读取该列表。

将数据从 S3 迁移到 QingStor

S3 是 AWS 提供的对象存储服务,支持 S3 协议的终端可作为 qscamel 数据迁移任务中的 sourcedestination 端点。

如用户需将 S3 的 example_bucket/path/to/source 目录下的文件 copy 至 山河云对象存储的 bucket_name 下的 /path/to/destination 目录,则可参考以下内容配置任务文件。

type: copy

source:
  type: s3
  path: /path/to/source
  options:
    bucket_name: example_bucket
    endpoint: example_endpoint
    region: example_region
    access_key_id: example_access_key_id
    secret_access_key: example_secret_access_key
    disable_ssl: false
    use_accelerate: false
    path_style: true
    enable_list_object_v2: false
    enable_signatrue_v2: false
    disable_uri_cleaning: false

destination:
  type: qingstor
  path: /path/to/destination
  options:
    protocol: https
    host: is.shanhe.com
    port: 443
    bucket_name: bucket_name
    access_key_id: qingstor_access_key_id
    secret_access_key: qingstor_secret_access_key

source options 参数说明

参数 说明

bucket_name

S3 的 Bucket 名称。

endpoint

S3 的端点地址。

  • 例如 AWS 公有云作为 endpoint 时,填写格式为:endpoint: s3.ap-southeast-1.amazonaws.com

  • 也可以写 IP 地址,如 endpoint: 10.89.79.195,填写 IP 地址时,同时需设置 disable_ssl: false 以及 path_style: true

region

S3 bucket 所在的区域。

access_key_id

访问 S3 的 access_key_id。

secret_access_key

访问 S3 的 secret_access_key。

disable_ssl

是否禁用 SSL。如需要通过 http 访问,或者是 IP 访问,则设置为 false。如需通过 https 协议访问,则设置为 ture

use_accelerate

是否启用加速。

disable_uri_cleaning

是否自动清理 URL,默认为 false

  • path 指定目录中,包含名称为 / 的目录时,该参数需设置为 true

  • path 指定目录为 abc//bcd,该参数需设置为 true 时,目录不作变动,仍然为 abc//bcd;该参数需设置为 false 时,目录转化为 abc/bcd

path_style

是否强制请求使用路径样式寻址。默认为 false,即使用 http://s3.amazonaws.com/BUCKET/KEY 格式。

enable_list_object_v2

是否使用 ListObjectsV2。默认为 false,即使用 ListObjects。

enable_signature_v2

是否强制客户端使用 v2.SignRequestHandler。默认为 false,即使用 v4.SignRequestHandler

将数据从 OSS 迁移到 QingStor

OSS 是阿里云提供的对象存储服务,可作为 qscamel 数据迁移任务中的 source 端点。

如,将 OSS 的 example_bucket/path/to/source 目录下的文件 copy 至 山河云对象存储的 bucket_name 下的 /path/to/destination 目录,则可参考以下内容配置任务文件。

type: copy

source:
  type: oss
  path: /path/to/source
  options:
    endpoint: example_endpoint
    bucket_name: example_bucket
    access_key_id: example_access_key_id
    access_key_secret: example_access_key_secret

destination:
  type: qingstor
  path: /path/to/destination
  options:
    protocol: https
    host: is.shanhe.com
    port: 443
    bucket_name: bucket_name
    access_key_id: qingstor_access_key_id
    secret_access_key: qingstor_secret_access_key

source options 参数说明

参数 说明

endpoint

用于标识访问的 OSS 端点地址。

bucket_name

待操作的 OSS 的 Bucket 名称。

access_key_id

用于访问 OSS 的 Access Key ID。

secret_access_key

用于访问 OSS 的 Access Key。

将数据从 Azblob 迁移到 QingStor

Azblob 是 Microsoft 提供的存储服务,可作为 qscamel 数据迁移任务中的 source 端点。

如,将 Azblob 的 bucket_name/path/to/source 目录下的文件 copy 至 山河云对象存储的 bucket_name 下的 /path/to/destination 目录,则可参考以下内容配置任务文件。

type: copy

source:
  type: azblob
  path: /path/to/source
  options:
    account_name: example_account_name
    account_key: example_account_key
    bucket_name: example_bucket
    endpoint: example_endpoint

destination:
  type: qingstor
  path: /path/to/destination
  options:
    protocol: https
    host: is.shanhe.com
    port: 443
    bucket_name: bucket_name
    access_key_id: qingstor_access_key_id
    secret_access_key: qingstor_secret_access_key

source options 参数说明

参数 说明

account_name

访问 Azblob 的账号。

account_key

访问 Azblob 的密码。

bucket_name

标识待操作的 Azblob 的 Bucket 名称。

endpoint

用于标识访问的 Azblob 端点地址。

将数据从 COS 迁移到 QingStor

COS 是 Tencent 提供的对象存储服务,可作为 qscamel 数据迁移任务中的 source 端点。

如,将 COS 的 example_bucket_url/path/to/source 目录下的文件 copy 至 山河云对象存储的 bucket_name 下的 /path/to/destination 目录,则可参考以下内容配置任务文件。

type: copy

source:
  type: cos
  path: /path/to/source
  options:
    bucket_url: example_bucket_url
    secret_id: example_secret_id
    secret_key: example_secret_key

destination:
  type: qingstor
  path: /path/to/destination
  options:
    protocol: https
    host: is.shanhe.com
    port: 443
    bucket_name: bucket_name
    access_key_id: qingstor_access_key_id
    secret_access_key: qingstor_secret_access_key

source options 参数说明

参数 说明

bucket_url

Tencent COS 的 Bucket URL 地址。

secret_id

访问 Tencent COS 的 secret_id。

secret_key

访问 Tencent COS 的 secret_key。

将数据从 GCS 迁移到 QingStor

GCS 是 Google 提供的对象存储服务,可作为 qscamel 数据迁移任务中的 source 端点。

如,将 GCS 的 bucket_name/path/to/source 目录下的文件 copy 至 山河云对象存储的 bucket_name 下的 /path/to/destination 目录,则可参考以下内容配置任务文件。

type: copy

source:
  type: gcs
  path: /path/to/source
  options:
    api_key: example_api_key
    bucket_name: exmaple_bukcet

destination:
  type: qingstor
  path: /path/to/destination
  options:
    protocol: https
    host: is.shanhe.com
    port: 443
    bucket_name: bucket_name
    access_key_id: qingstor_access_key_id
    secret_access_key: qingstor_secret_access_key

source options 参数说明

参数 说明

api_key

用于访问 GCS 的 api_key。

bucket_name

待访问的 GCS 的 Bucket 名。

将数据从 HDFS 迁移到 QingStor

HDFS 是 Hadoop 的分布式文件系统,可作为 qscamel 数据迁移任务中的 source 端点。

如,将 HDFS 的 example_address/path/to/source 目录下的文件 copy 至 山河云对象存储的 bucket_name 下的 /path/to/destination 目录,则可参考以下内容配置任务文件。

type: copy

source:
  type: hdfs
  path: /path/to/source
  options:
   address: example_address

destination:
  type: qingstor
  path: /path/to/destination
  options:
    protocol: https
    host: is.shanhe.com
    port: 443
    bucket_name: bucket_name
    access_key_id: qingstor_access_key_id
    secret_access_key: qingstor_secret_access_key

将数据从 Qiniu 迁移到 QingStor

Qiniu 是 Qiniu 提供的对象存储服务,可用作 qscamel 数据迁移任务中的 source 端点。

如,将 Qiniu 的 example_bucket/path/to/source 目录下的文件 copy 至 山河云对象存储的 bucket_name 下的 /path/to/destination 目录,则可参考以下内容配置任务文件。

type: copy

source:
  type: qiniu
  path: /path/to/source
  options:
    bucket_name: example_bucket
    access_key: example_access_key
    secret_key: example_secret_key
    domain: example_domain
    use_https: false
    use_cdn_domains: false

destination:
  type: qingstor
  path: /path/to/destination
  options:
    protocol: https
    host: is.shanhe.com
    port: 443
    bucket_name: bucket_name
    access_key_id: qingstor_access_key_id
    secret_access_key: qingstor_secret_access_key

source options 参数说明

参数 说明

bucket_name

待访问的 Qiniu 的 Bucket 名称。

access_key

用于访问 Qiniu 的 Access Key。

secret_key

用于访问 Qiniu 的 Secret Key。

domain

待访问的 Qiniu Bucket 的域名。

use_https

是否使用 https 来访问 Qiniu。

use_cdn_domains

是否使用 CDN 加速域名来访问 Qiniu。

将数据从 Upyun 迁移到 QingStor

Upyun 是 Upyun 提供的对象存储服务,可作为 qscamel 数据迁移任务中的 source 端点。

如,将 Upyun 的 example_bucket/path/to/source 目录下的文件 copy 至 山河云对象存储的 bucket_name 下的 /path/to/destination 目录,则可参考以下内容配置任务文件。

type: copy

source:
  type: upyun
  path: /path/to/source
  options:
    bucket_name: example_bucket
    operator: example_operator
    password: example_password

destination:
  type: qingstor
  path: /path/to/destination
  options:
    protocol: https
    host: is.shanhe.com
    port: 443
    bucket_name: bucket_name
    access_key_id: qingstor_access_key_id
    secret_access_key: qingstor_secret_access_key

source options 参数说明

参数 说明

bucket_name

待访问的 Upyun 的 Bucket 名称。

operator

Upyun 的 Operator。

password

访问 Upyun 的 Password。

QingStor 同区域不同账户间进行数据迁移

将 山河云对象存储源账户的 source_bucket/path/to/source 目录下的文件 copy 至 山河云对象存储目标账户的 destination_bucket 下的 /path/to/destination 目录,则可参考以下内容配置任务文件。

type: copy

source:
  type: qingstor
  path: /path/to/source
  options:
    protocol: https
    host: is.shanhe.com
    port: 443
    bucket_name: source_bucket
    access_key_id: source_access_key_id
    secret_access_key: source_secret_access_key
    disable_uri_cleaning: false


destination:
  type: qingstor
  path: /path/to/destination
  options:
    protocol: https
    host: is.shanhe.com
    port: 443
    bucket_name: destination_bucket
    access_key_id: qingstor_access_key_id
    secret_access_key: qingstor_secret_access_key

参数说明

  • source 字段的 access_key_idsecret_access_key 填写源账户的 AK/SK,destination 字段的 access_key_idsecret_access_key 填写目标账户的 AK/SK。

  • 若源账户已授权目标账户可读访问权限,则 source 字段的 access_key_idsecret_access_key 可填写目标账户的 AK/SK。