oss对象存储大批量迁移工具-qscamel

目录

0、介绍

本次实验的目的是从一个oss对象中迁移大量文件至另外一个oss,本次的范围都是青云的oss,但是这个工具提供了市场上大部分云的迁移,可以从云oss到云oss,也可以从linux的磁盘文件到云oss,也可以从云oss到磁盘文件。

官网资料: https://docs.qingcloud.com/qingstor/developer_tools/qscamel

官网工具下载: https://github.com/yunify/qscamel/releases

?

1、安装 qscamel

创建存放目录并下载文件:

#创建目录
mkdir /soft/qscamel -p && cd /soft/qscamel
#下载文件
wget https://github.com/yunify/qscamel/releases/download/v2.0.5/qscamel_v2.0.5_linux_amd64.tar.gz

#解压文件,该文件是个二进制可直接执行
tar -zxvf qscamel_v2.0.5_linux_amd64.tar.gz

#查看文件
ll

2、设置配置

创建启动用的配置文件

mkdir config

#编辑文件
vim config/qscamel.yaml

文件内容:
# concurrency 会控制同时启用的并发数量。
# # 如果没有设置,或者设置为 0, qscamle 将会使用逻辑 CPU 数量 * 100 作为该项的值。
# concurrency: 0
# # log_level 控制日志的级别。
# # 可选值(从更多到更少): debug, info, warn, error, fatal, panic.
# # 默认值: info
log_level: info
# # pid_file 将会控制在何处创建 PID 文件。
# # 默认值: ~/.qscamel/qscamel.pid
pid_file: /soft/qscamel/qscamel.pid
# # log_file 将会控制在何处创建日志文件。
# # 默认值: ~/.qscamel/qscamel.log
log_file: /soft/qscamel/qscamel.log
# # database_file 将会控制在何处创建数据库。
# # 默认值: ~/.qscamel/db
database_file: /soft/qscamel/db

根据配置文件中的配置创建db文件夹

mkdir /soft/qscamel/db

创建任务配置文件

mkdir /soft/qscamel/task

vim /soft/qscamel/task/otosaastobaojun.yaml 


文件内容如下:
# type 是任务的类型。
# 可选值: copy, fetch, delete
# copy 将会从 source 处读取文件,并写入到 destination。
# fetch 将会从 source 处获取文件的下载链接,并使用 destination 的 fetch 功能进行拉取。
# delete 将会从 source 处获取文件的信息,并在 destination 处删除。
type: copy
# source 是任务的 source 端点。
source:
  # type 是当前端点的类型。
  # 可选值: aliyun, fs, filelist, gcs, qingstor, qiniu, s3, upyun.
  type: qingstor
  # path 是当前端点的路径。
  path: /dev
  options:
    bucket_name: otosaas
    access_key_id: 用户
    secret_access_key: 密码
# destination 是任务的 destination 端点。
destination:
  # type 是当前端点的类型。
  # 可选值: fs, qingstor.
  type: qingstor
  # path 是当前端点的路径。
  path: /dev
  # options 是不同端点的配置,详情请参考下面的文档。
  options:
    bucket_name: baojun
    access_key_id: 用户
    secret_access_key: 密码
# ignore_existing 控制是否跳过已经存在的文件。
# 为空或未配置时将会禁用该配置,即总是覆盖
# `last_modified` 将会检查目标的 LastModified 是否比源站要大
# `md5sum` 将会对文件做完整的 md5 计算,当 md5 相同时会跳过
# 可选值: last_modified, md5sum.
ignore_existing: last_modified

大部分上面都解释清楚了,其中?access_key_id和secret_access_key是需要申请的,进入api密钥中创建,阿里云等其它云也类似

?

3、启动操作

注意任务名称不能重复,如果再次启动需要修改名称才会再次copy

/soft/qscamel/qscamel_v2.0.5_linux_amd64 run test -t /soft/qscamel/task/otosaastobaojun.yaml -c /soft/qscamel/config/qscamel.yaml

参数说明:

qscamel run [任务名称] -t [任务配置] -c [启动配置]

qscamel 默认从? ~/.qscamel/qscamel.yaml ?读取配置文件,你也可以通过? -c ?或者? --config ?来指定配置文件的位置。 通过指定不同的配置文件,你可以同时运行多个 qscamel 实例。

4、结果

我测了下,200m带宽的公网,oss迁移6gb的数据文件大概需要5分钟。

?

?

5、官网一些命令的介绍

Run

Run 是 qscamel 最主要的命令。我们使用这个命令来创建或者恢复一个任务。

如果要创建一个任务,我们可以使用:

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

如果要恢复一个任务,我们可以使用:

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

or

qscamel run task-name

当一个新任务创建的时候就,我们将会计算任务内容的 sha256 校验和并且保存在数据库当中,同时我们还会检查任务文件的内容是否发生了修改。如果改变了,qscamel 将会返回一个错误并退出。换句话说,任务在创建完毕后就不能修改。如果你需要修改一个任务的内容,请创建一个新任务。

Delete

Delete 能够删除一个任务。

qscamel delete task-name

Status

Status 将会展示所有任务的状态。

qscamel status

Clean

Clean 将会删除所有已经完成的任务。

qscamel clean

Version

Version 将会显示当前 qscamel 的版本。

qscamel version
我来评几句
登录后评论

已发表评论数()

相关站点

+订阅
热门文章