因为有一个网站前期使用的本地,发现服务器经常爆满,然后安装了一个wordpress七牛云插件,因为我提前上传了文件到七牛云,导致链接规则不匹配,所以想找七牛云储存批量下载文件的工具和教程,发现基本上没有。后来研究发现,七牛云储存官方是有提供工具的。就是用qshell工具。
一、下载命令行工具(qshell)
官网:https://developer.qiniu.com/kodo/tools/1302/qshell
Github:https://github.com/qiniu/qshell
二、环境变量PATH配置
因为我自己用的是windows 10 64位,所以只介绍windows版 。
(1)闪退问题 本工具是一个命令行工具,在Windows下面请先打开命令行终端,然后输入工具名称执行,不要双击打开,否则会出现闪退现象。
(2)任何位置运行 如果你希望可以在任意目录下使用qshell,请将qshell工具可执行文件所在目录添加到系统的环境变量中。由于Windows系统是图形界面,所以方便一点。假设qshell.exe命令被解压到路径E:\lpyun\tools目录下面,那么我们把这个目录放到系统的环境变量PATH里面。
三、qshell工具的使用
添加密钥和账户名称
该工具有两类命令,一类需要鉴权,另一类不需要。
需要鉴权的命令都需要依赖七牛账号下的 AccessKey
, SecretKey
和 Name
。所以这类命令运行之前,需要使用 account
命令来添加 AccessKey
,SecretKey
和Name
。 Name
是用户可以自定义的字符串,用来唯一表示AccessKey/SecretKey账户,qshell会对添加的每一个账户信息加密保存,可以使用自命令user
进行切换,切换账户的时候,需要使用账户唯一标识Name
。
qshell account <Your AccessKey> <Your SecretKey> <Your Name>
其中name表示该账号的名称, 如果ak, sk, name首字母是”-“, 需要使用如下的方式添加账号, 这样避免把该项识别成命令行选项:
qshell account -- <Your AccessKey> <Your SecretKey> <Your Name>
可以连续使用qshell account 添加账号ak, sk, name信息,qshell会保存这些账号的信息, 可以使用qshell user命令列举账号信息,在各个账号之间切换, 删除账号等。 如果使用的2.3.0之前的版本account命令记录的账户信息,需要先使用qshell user clean清楚保存的账户信息,然后使用qshell account命令重新记录账户信息。
也可以使用qshell的配置文件添加access_key和secret_key信息,具体配置方法参考下面配置文件一节。
实例:
qshell account abcde12345abcde12345 qwert7890qwert7890
使用之前必须登录
四、下载七牛云储存中文件的命令
简介 【该功能默认需要计费,如果希望享受10G的免费流量,请自行设置cdn_domain参数,如不设置,需支付源站流量费用,无法减免!!!】
格式
qshell qdownload [-c <ThreadCount>] <LocalDownloadConfig>
鉴权
需要在使用了account
设置了AccessKey
, SecretKey
和Name
的情况下使用。
参数
参数名称 | 描述 | 可选参数 | 取值范围 |
---|---|---|---|
LocalDownloadConfig | 本地下载的配置文件,内容包括要下载的文件所在空间,文件前缀等信息,具体参考配置文件说明 | N |
其中 `ThreadCount** 表示支持同时下载多个文件。
c选项 -c ThreadCount ==> 下载的并发协程数量, 大小必须在1-2000,如果不在这个范围内,默认为5
qdownload
功能需要配置文件的支持,配置文件的内容如下:
{
"dest_dir" : "<LocalBackupDir>",
"bucket" : "<Bucket>",
"prefix" : "image/",
"suffixes" : ".png,.jpg",
"cdn_domain" : "down.example.com",
"referer" : "http://www.example.com",
"log_file" : "download.log",
"log_level" : "info",
"log_rotate" : 1,
"log_stdout" : false
}
参数名 | 描述 | 可选参数 |
---|---|---|
dest_dir | 本地数据备份路径,为全路径 | N |
bucket | 空间名称 | N |
prefix | 只同步指定前缀的文件,默认为空 | Y |
suffixes | 只同步指定后缀的文件,默认为空 | Y |
cdn_domain | 设置下载的CDN域名,默认为空表示从存储源站下载,【该功能默认需要计费,如果希望享受10G的免费流量,请自行设置cdn_domain参数,如不设置,需支付源站流量费用,无法减免!!!】 | N |
referer | 如果CDN域名配置了域名白名单防盗链,需要指定一个允许访问的referer地址 | N |
log_level | 下载日志输出级别,可选值为debug ,info ,warn ,error ,默认info |
Y |
log_file | 下载日志的输出文件,如果不指定会输出到qshell工作目录下默认的文件中,文件名可以在终端输出看到 | Y |
log_rotate | 下载日志文件的切换周期,单位为天,默认为1天即切换到新的下载日志文件 | Y |
log_stdout | 下载日志是否同时输出一份到标准终端,默认为false,主要在调试下载功能时可以指定为true | Y |
备注:
- 在Windows系统下面使用的时候,注意
dest_dir
的设置遵循D:\\jemy\\backup
这种方式。也就是路径里面的\
要有两个(\\
)。 - 在默认不指定
cdn_domain
的情况下,会从存储源站下载资源,这部分下载产生的流量会生成存储源站下载流量的计费,请注意,这部分计费不在七牛CDN免费10G流量覆盖范围。
需要同步空间lpyun
中的所有以2020/02
开头(理解为前缀的概念,那么2020/02/1.mp4,2020/02/2.mp4等以movies/为前缀的文件都会被下载保存),并以.mp4
结尾的文件到本地路径d://baocun
下面(把下面的配置内容写入配置文件qdisk_down.conf,该配置文件需要自行创建,用默认的记事本即可,编辑好了保存后改名):
{
"dest_dir" : "d://baocun",
"bucket" : "lpyun",
"cdn_domain" : "http://img.lpyun.net",
"prefix" : "2020/02",
"suffix" : ".mp4"
}
运行命令(下载并发数表示可以同时下载10个文件):
qshell qdownload -c 10 qdisk_down.conf
这样文件就下载完成了。