帮助与文档

我们为你提供丰富、详尽的使用指南以及产品文档

qscamel 文档

qscamel 是把 HTTP(s) 形式的数据高效地批量迁移到 QingStor 的命令行工具。其输入可以是包含源链接的文件,也可以是其他对象存储平台的 Bucket 名称。

Quick Start

1.下载 qscamel

前往 github releases 下载最新的 qscamel

2.使用 qscamel 必需有一个配置文件,用来配置你自己的 access_key_idsecret_access_key 。比如:

access_key_id: 'QINGCLOUDACCESSKEYID'
secret_access_key: 'QINGCLOUDSECRETACCESSKEYEXAMPLE'

access key 可在 青云控制台 申请。

配置文件默认放在 ~/.qingstor/config.yaml ,也可在每次执行命令时以参数 -c /path/to/config 方式来指定

选项列表

下面列出 qscamel 支持的命令选项。

常规命令选项:

Short Full Type Required Usage
-t  - -src-type string Y 指定源站的输入方式,支持 file 和其他对象存储平台,如 s3, qiniu, aliyunupyun
-s  - -src string Y 指定具体的源站。如果 --src-type=file--src 指定了源站列表文件路径。否则,--src 指定了其他对象存储平台的 Bucket 名字
-b  - -bucket string Y 指定 QingStor Bucket
-d  - -description string Y 描述当前的迁移任务。此描述会作为记录文件的文件名。该记录文件会记录下成功迁移的源站,用来退出、重新开始后恢复本次迁移任务。
-c  - -config string N 指定 QingStor 配置文件
-T  - -threads int N 指定并发迁移的对象数 (最大为 100,默认为 10)
-l  - -log-file string N 指定日志文件路径,默认打印到 stdout
-v  - -version bool N 打印 qscamel 的版本号,并退出
-h  - -help bool N 打印 qscamel 的命令帮助,并退出

覆盖相关的命令选项:

qscamel 默认采用增量迁移的模式,即比较源链接资源和 QingStor Bucket 中对象的最后更新时间。 迁移 Bucket 中已存在但未更新的对象,和 Bucket 中不存在的对象。

使用 --overwrite 选项强制覆盖已经存在的对象。

使用 --ignore-existing 选项跳过已经存在的对象,无论该对象是否是最新的。

使用 --dry-run 选项在做实际迁移之前查看 qscamel 的运行结果。

Short Full Type Required Usage
-i  - -ignore-existing bool N 跳过 QingStor Bucket 中已存在的对象
-o  - -overwrite bool N 强制覆盖已存在的对象
-n  - -dry-run bool N 试运行 qscamel,输出运行结果,但不做实际迁移

迁移对象存储平台相关的命令选项:

Short Full Type Required Usage
-z  - -src-zone string N 指定要迁移对象存储平台的区域
-a  - -src-access-key string N 指定要迁移对象存储平台的 Access Key ID
-S  - -src-secret-key string N 指定要迁移对象存储平台的 Secret Access Key

源站列表文件格式

源站列表文件提供了将要进行迁移的 http/https 协议源站。列表的每一行以 \n 结束。可以使用两种格式:

1.只提供源站链接。对象名称会从链接中解析出来,例如:

链接含有路径,则用路径作为对象名。对象名是 public/cat.png:

http://image.example.com/public/cat.png

链接不含路径,则用主机信息作为对象名。对象名是 image.example.com:

http://image.example.com

2.提供源站链接和对象名称。格式是: 源站链接[空格]对象名称, 例如:

http://image.example.com/public/cat.png archive/cat.png

支持的迁移对象存储平台

使用 --src-type= 或者 -t 指定其他对象存储平台类型 (如 --src-type=s3),使用 --src 或者 -s 来指定进行迁移的其他对象存储平台 Bucket 名称。

Platform Require - -src-zone Require - -src-access Require - -src-secret
s3 Y Y Y
qiniu N Y Y
aliyun Y Y Y
upyun Y Y Y

示例

从源站列表文件中读取:

> qscamel -t file -s ~/source-list -b QingStor-bucket-name -d "migrate 01"

强制覆盖已经存在的对象:

> qscamel -t file -s ~/source-list -b QingStor-bucket-name -d "migrate 02" -o

跳过已经存在的对象,并试运行:

> qscamel -t file -s ~/source-list -b QingStor-bucket-name -d "migrate 03" -i -n

指定并发量,日志文件:

> qscamel -t file -s ~/source-list -b QingStor-bucket-name -d "migrate 04" -T 5 -l ~/logfile

从亚马逊 s3 迁移:

> qscamel -t s3 -s s3-bucket-name -z us-east-1 -a "S3ACCESSKEYID" -S "S3SECRETACCESSKEY" -b QingStor-bucket-name -d "migrate 05"

从七牛云迁移:

> qscamel -t qiniu -s qiniu-bucket-name -a "QINIUACCESSKEYID" -S "QINIUSECRETACCESSKEY" -b QingStor-bucket-name -d "migrate 06"

从阿里云迁移:

> qscamel -t aliyun -s aliyun-bucket-name -z oss-cn-shanghai -a "ALIYUNACCESSKEYID" -S "ALIYUNSECRETACCESSKEY" -b QingStor-bucket-name -d "migrate 07"

从又拍云迁移:

> qscamel -t upyun -s upyun-bucket-name -z b0 -a "UPYUNOPERATOR" -S "UPYUNOPERATORPASSWORD" -b QingStor-bucket-name -d "migrate 08"

从又拍云迁移时,”UPYUNOPERATOR” 代表着您在又拍云上对指定的 Bucket 有读权限的操作员账号名,”UPYUNOPERATORPASSWORD” 为对应的授权操作员密码, 详细信息请参考又拍云官方文档。