对象存储

  • 对象存储 > 常见问题 > 其他 >数据迁移 >如何将阿里云 OSS上 的文件迁移到七牛云存储?

    如何将阿里云 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