0%

导出七牛云存储的数据

前不久,七牛收回了其测试域名,导致先前创建的外链失效,关联的图片也因此而无法加载。继续使用七牛云的话,需要绑定一个已备案的域名。我没有域名,只能选择将七牛中的数据迁出,本文记录了我的迁出方案,仅供参考。

七牛控制台

登录七牛控制台,看到之前上传的文件都还在,不由松了一口气。

但因七牛提供的测试域名已被收回,这些文件无法直接下载。七牛官方有提供命令行工具 qshell 用来管理七牛云存储中的数据,下面便尝试用 qshell 来取回七牛云存储中的数据。

qshell

操作步骤

  1. 下载qshell
  2. 设置七牛密钥,AccessKeySecretKey可在个人中心查看,username即登录名
    1
    $ ./qshell account $AccessKey $SecretKey $username
  3. 查看七牛中的所有的存储空间
    1
    2
    $ ./qshell buckets 
    bucket1 bucket2
  4. 查看任意bucket下的所有文件,bucket1即存储空间名称,可在第三步获得
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $ ./qshell listbucket bucket1
    20180607152835781571470.png 146467 FkomvVSnuHSTqOb5DTP2P-tMfvhu 15283578247522637 image/g> 0
    20180607152835853736115.png 275169 FjNQ_IsQ2O1uAJ8GUIWnf4EI_ria 15283585599550264 image/g> 0
    20180607152835873357855.png 301775 Fkf66UnqTOE_2qk9JLaK7CmBYGaz 15283587418650741 image/g> 0
    20180607152835873635379.png 301775 Fkf66UnqTOE_2qk9JLaK7CmBYGaz 15283587447048077 image/g> 0
    20180607152835921758924.png 228242 FosahF-yBSb52XpzeEwsWtthYtr- 15283592250769811 image/g> 0
    20180607152835922424458.png 228242 FosahF-yBSb52XpzeEwsWtthYtr- 15283592317735414 image/g> 0
    2018060715283595974118.png 274603 Fus9VYf57nyzZl0anfAtyhb9LqUB 15283596050005389 image/g> 0
    20180607152835959964068.png 274603 Fus9VYf57nyzZl0anfAtyhb9LqUB 15283596074482577 image/g> 0
    20180607152835995681268.png 336315 FnBe6Y7ZTcOXcagb1jlVFpT9PBDB 15283599638787908 image/g> 0
    20180607152836010286020.png 163278 FulF_a__HWD_0ozKbWYQkLlUC3ae 15283601099593898 image/g> 0
    20180607152836024325067.png 174147 FlMb0fDhRvK4ATatZ7nMjALKtM_D 15283602512194601 image/png 0
  5. 下载文件,qshell提供了两个下载子命令,qdownload和get,其中qdownload可以批量下载,但必须绑定域名;get只能下载单个文件,但无需绑定域名
  6. 下载单个文件

    1
    $ ./qshell get $bucketName $fileName
  7. 下载多个文件

    1
    2
    3
    4
    5
    6
    //使用awk命令构造含有多条`qshell get`语句的脚本patchGet.sh
    $ ./qshell listbucket $bukectName | awk '$1="./qshell get $bucketName "$1{print $1}'>patchGet.sh
    //为patchGet.sh赋予可执行权限
    $ chmod +x patchGet.sh
    //执行批量get脚本
    $ ./patchGet.sh
  8. 等待脚本执行完成,即可发现bucket1中的文件均已下载到本地
    patchGet.sh

本文完结。