使用qshell批量下载七牛云文件

0x00 前言

说起七牛云,国内很多人都因为它提供的免费存储和每日的10g免费流量,将它当作图床使用,我在建立博客的第一年里也是使用七牛云做图床的。

不过昨天忽然收到一条七牛云的域名回收通知邮件,告诉我的七牛云域名将在7个工作日后被回收。登陆进账户后发现的确是这样的,而且之后的测试域名也只提供30天试用,无法再当作图床。

准备将所有资源都迁移出来时,发现云存储的管理界面并不存在批量下载的功能,这个时候总不能一个一个下载吧?所以在经过几分钟的寻找之后,发现七牛云提供的管理工具qshell拥有批量下载的功能,所以就写个博客把如何通过qshell批量下载文件的方法记录下来,提供给有同样需求的朋友们参考。

0x01 下载并配置qshell

七牛云的开发者中心提供qshell的下载地址: https://developer.qiniu.com/kodo/tools/1302/qshell

我们只需要下载自己机器对应的版本就可以了。

接下来我们需要将qshell与我们七牛云的账号绑定,官方给出的命令是account,我们在qshell的路径打开command并输入:

1
qshell account <Your AccessKey> <Your SecretKey>

这个AccessKey和SecretKey在我们账号的个人中心->密钥管理中可以找到。

account文档: https://github.com/qiniu/qshell/blob/master/docs/account.md

0x02 配置qdownload参数

qdownload是qshell中用来将七牛云空间数据同步到本地的,它的官方文档: https://github.com/qiniu/qshell/blob/master/docs/qdownload.md

qdownload所用到的参数过多,我们使用test.conf文件来方便的配置这些参数:

1
2
3
4
5
6
7
8
9
10
{
"dest_dir" : "E:\\aaa\\backup",
"bucket" : "xxxx",
"cdn_domain" : "http://xxxxxxxx.bkt.clouddn.com",
"access_key" : "xxxxxxxxx",
"secret_key" : "xxxxxxxxx",
"is_private" : false,
"prefix" : "",
"suffix" : ""
}

各参数具体意义如下:

参数名 描述 可选参数
dest_dir 本地数据备份路径,为全路径 N
bucket 空间名称 N
prefix 只同步指定前缀的文件,默认为空 Y
suffix 只同步指定后缀的文件,默认为空 Y
cdn_domain 设置下载的CDN域名 N

其中dest_dir设置的路径参考上例中的路径格式书写即可,accesskey和secretkey我们已经在绑定时设置好了,又由于我们是拷贝所有文件,所以prefix参数和suffix参数都是空。

官方文档中有提到:“该功能默认需要计费,如果希望享受10G的免费流量,请自行设置cdn_domain参数,如不设置,需支付源站流量费用,无法减免!!!”

我们之前只是作为图床用自然是没有充值的,这个时候我们只需配置下cdn_domain参数,使用免费的10g流量下载一下就可以了。

我们将cdn_domain这个参数设置成存储空间的那个免费域名就可以了。

0x03 批量下载文件

配置全部完成之后,我们在qshell路径打开cmd窗口,使用:

1
qshell qdownload 10 test.conf

即可下载全部文件到配置文件中指定好的文件夹内。

qdownload后面的参数10,为我们使用的并发线程数,像我这样几百个文件的,其实配置不配置影响不大,但是如果文件较多,建议使用多线程并发下载提升速度。