如何将阿里云 OSS上 的文件迁移到七牛云存储?

最近更新时间:2017-08-30 17:45:05

很多用户有需求将阿里对象存储文件同步到七牛空间里面,对此,七牛提供了相应的 qshell工具 以及 qfetch工具 配合达到迁移的效果,下面以一个具体的实例描述同步过程:

首先需要下载七牛对应的 qshell工具 以及 qfetch工具。使用 qshell 工具的主要目的是获取一份包含 OSS 文件的外链的文本文件,如果可以获取到,就可以省略 qshell 工具的步骤只需要使用 qfetch 就可以了。

1.使用qshell account <AK> <SK> 设置或显示当前用户的 AccessKey 和 SecretKey
2.使用 qshell 里面的 alilistbucket 命令列举出阿里 OSS 里面的文件的目录列表

此例中的 OSS 文件列表如下:
这里写图片描述

qshell alilistbucket <DataCenter> <Bucket> <AccessKeyId> <AccessKeySecret> [Prefix] <ListBucketResultFile>1

其中DataCenter Bucket AccessKeyId AccessKeySecret要和 OSS 里面相对应。
qshell 运行的命令如下:

qshell alilistbucket oss-cn-shanghai.aliyuncs.com alitoqiniu xxx xxx aliyuntoqiniu.txt1

如果不写Prefix则列举出所有的文件,后面的aliyuntoqiniu.txt也可以写成绝对路径。
运行后可以看到本地aliyuntoqiniu.txt里面的文件如下:
这里写图片描述

3.使用 qfetch 工具将这个文件里面的文件批量抓取到七牛空间,但是 qfetch 抓取的是可以访问到的文件的外链,所以在这之前还需要对上面的aliyuntoqiniu.txt里面的文件拼接成 OSS 里面文件外链的形式。
这一步可以使用 linux 下 awk 文本处理工具进行拼接,这里直接给出命令如下:

cat aliyuntoqiniu.txt | awk '{print "http://alitoqiniu.oss-cn-shanghai.aliyuncs.com/"$1}' >alitoqiniu.txt1

再次cat alitoqiniu.txt里面的文件列表如下:
这里写图片描述

4.使用 qfetch 工具进行同步,这里直接给出同步命令:

qfetch -ak='xxx' -sk='xxx' -bucket='tttest' -file='alitoqiniu.txt' -worker=300 -job='demo' | tee diff.log 1

至此即同步成功,可以看到七牛空间里面也有相关的文件了:
这里写图片描述

以上内容是否对您有帮助?
  • 提交工单