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

最近更新时间:2020-03-20 11:49:43

很多用户有需求将阿里云对象存储(OSS)中的文件同步到七牛云对象存储空间(KODO)中,对此,七牛云提供了相应的 qshell工具 帮助用户,下面以一个具体的案例讲解操作步骤:

首先需要下载七牛云提供的 qshell工具。大致流程是使用 qshell 工具的 alilistbucket 命令获取一份包含阿里云对象存储中文件的文件列表,然后再使用 qshell 工具的 batchfetch 命令批量抓取文件列表中的文件到七牛云存储空间中。

本案例中的参数

七牛云对象存储参数

  • AccessKey/SecretKey:获取
  • Bucket:qiniu-test-bucket

阿里云对象存储参数

  • DataCenter:oss-cn-shanghai.aliyuncs.com
  • Bucket:ali-qiniu
  • AccessKeyId、AccessKeySecret:获取
  • ListBucketResultFile:alitoqiniu.txt

1、获取阿里对象存储的文件列表

1.使用 qshell account <AK> <SK> name 设置或显示当前用户的 AccessKey 和 SecretKey ,name为在本地自定义的用户名,可以填写您的七牛云账户邮箱。
2.使用 qshell 里面的 alilistbucket 命令 列举出阿里云 OSS 中的文件的文件列表

此例中的 OSS 文件列表如下:

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

其中DataCenter Bucket AccessKeyId AccessKeySecret要和 OSS 里面相对应,更详细的说明:点我查看

qshell 运行的命令如下:

qshell alilistbucket oss-cn-shanghai.aliyuncs.com alitoqiniu xxx xxx alitoqiniu.txt

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

2、抓取阿里云对象存储文件到七牛存储空间

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

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

再次cat batchfetchurls.txt里面的文件列表如下:

2.使用 batchfetch 命令进行同步,这里直接给出同步命令:

qshell batchfetch qiniu-test-bucket -i batchfetchurls.txt

运行结果如下:

至此即同步成功,可以看到七牛云存储空间里面也有相关的文件了:

以上内容是否对您有帮助?
  • Qvm free helper
    Close