qshell 备份七牛云文件

本文最后更新于:2021年12月11日 上午

qshell 是七牛云的shell 工具,为了以防万一,本文记录七牛云文件增量备份方法。

简介

qshell 是利用七牛文档上公开的 API 实现的一个方便开发者测试和使用七牛 API 服务的命令行工具。该工具设计和开发的主要目的就是帮助开发者快速解决问题。

下载

安装

该工具由于是命令行工具,所以只需要从上面的下载链接下载后即可执行使用。

  • Win 10 需要将 qshell 所在位置添加到系统路径

  • 需要配置密钥信息

1
$ qshell account <AccessKey> <SecretKey> <name>
  • 验证是否成功
1
2
3
4
5
6
7
8
$ qshell -v
qshell version v2.6.2

$ qshell user ls
Name: vvd
AccessKey: Bd0xxxxxxxxxxxxxxxxxxxxxx
SecretKey: ZFPxxxxxxxxxxxxxxxxxxxxxxx

  • 之后就可以正常使用qshell 操作七牛云了

命令列表

  • 列表内使用文档链接适用于v2.3.0及以上版本,历史版本请参考历史文档
    查看工具版本号请使用命令 qshell -v

存储相关命令

命令 类别 描述 详细
account 账号 设置或显示当前用户的AccessKeySecretKey 文档
batchdelete 删除 批量删除七牛空间中的文件,可以直接根据listbucket的结果来删除 文档
delete 删除 删除七牛空间中的一个文件 文档
batchchgm 修改 批量修改七牛空间中文件的MimeType 文档
chgm 修改 修改七牛空间中的一个文件的MimeType 文档
batchchtype 修改 批量修改七牛空间中的文件的存储类型,支持普通存储(0)和低频存储(1) 文档
chtype 修改 修改七牛空间中的一个文件的存储类型,支持普通存储(0)和低频存储(1) 文档
batchexpire 修改 批量修改七牛空间中的文件的生存时间 文档
expire 修改 修改七牛空间中的一个文件的生存时间 文档
batchcopy 拷贝 批量复制七牛空间中的文件到另一个空间 文档
copy 拷贝 复制七牛空间中的一个文件 文档
batchmove 移动 批量移动七牛空间中的文件到另一个空间 文档
move 移动 移动或重命名七牛空间中的一个文件 文档
batchrename 重命名 批量重命名七牛空间中的文件 文档
batchstat 查询 批量查询七牛空间中文件的基本信息 文档
stat 查询 查询七牛空间中一个文件的基本信息 文档
buckets 查询 获取当前账号下所有的空间名称 文档
domains 查询 获取指定空间的所有关联域名 文档
listbucket 列举 列举七牛空间里面的所有文件 文档
listbucket2 列举 列举七牛空间里面的所有文件 文档
fput 上传 以文件表单的方式上传一个文件 文档
rput 上传 以分片上传的方式上传一个文件 文档
qupload 上传 同步数据到七牛空间, 带同步进度信息,和数据上传完整性检查(配置式) 文档
qupload2 上传 同步数据到七牛空间, 带同步进度信息,和数据上传完整性检查(命令式) 文档
qdownload 下载 从七牛空间同步数据到本地,支持只同步某些前缀的文件,支持增量同步 文档
get 下载 下载存储空间中的文件 文档
fetch 抓取 从Internet上抓取一个资源并存储到七牛空间中 文档
batchfetch 抓取 从Internet批量抓取资源到七牛空间中 文档
sync 抓取 从Internet上抓取一个资源并存储到七牛空间中,适合大文件的场合 文档
abfetch 抓取 异步抓取网络资源到七牛存储空间 文档
m3u8delete m3u8 根据流媒体播放列表文件删除七牛空间中的流媒体切片 文档
m3u8replace m3u8 修改流媒体播放列表文件中的切片引用域名 文档
batchsign 其他 批量根据资源的公开外链生成资源的私有外链 文档
dircache 其他 输出本地指定路径下所有的文件列表 文档
privateurl 其他 生成私有空间资源的访问外链 文档

CDN 相关的命令

命令 描述 详细
cdnrefresh 批量刷新cdn的访问外链或目录 文档
cdnprefetch 批量预取cdn的访问外链 文档

工具类命令

命令 描述 详细
b64encode base64编码工具,可选是否使用UrlSafe方式,默认UrlSafe 文档
b64decode base64解码工具,可选是否使用UrlSafe方式,默认UrlSafe 文档
urlencode url编码工具 文档
urldecode url解码工具 文档
ts2d 将timestamp(单位秒)转为UTC+8:00中国日期,主要用来检查上传策略的deadline参数 文档
tms2d 将timestamp(单位毫秒)转为UTC+8:00中国日期 文档
tns2d 将timestamp(单位100纳秒)转为UTC+8:00中国日期 文档
d2ts 将日期转为timestamp(单位秒) 文档
ip 根据淘宝的公开API查询ip地址的地理位置 文档
unzip 解压zip文件,支持UTF-8编码和GBK编码 文档
reqid 七牛自定义头部X-Reqid解码工具 文档
qetag 根据七牛的qetag算法来计算文件的hash 文档
saveas 实时处理的saveas链接快捷生成工具 文档

音视频处理相关命令

命令 类别 描述 详细
pfop 提交 提交异步音视频处理请求 文档
prefop 查询 查询七牛数据处理的结果 文档

签名类命令

命令 类别 描述 详细
token 其他 计算upToken, Qbox token, Qiniu Token 文档

第三方存储类工具

命令 类别 描述 详细
alilistbucket 列举 列举阿里OSS空间里面的所有文件 文档
awslist 列举 列举亚马逊的存储空间 文档
awsfetch 抓取 从亚马逊存储迁移数据到七牛存储 文档

文件备份

用到了 qdownload 命令

1
qshell qdownload [-c <ThreadCount>] <LocalDownloadConfig>
  • 参数信息:

    • LocalDownloadConfig:本地下载的配置文件,内容包括要下载的文件所在空间,文件前缀等信息
    • ThreadCount: 表示支持同时下载多个文件
    • -c : 下载的并发协程数量, 大小必须在1-2000,如果不在这个范围内,默认为5
  • 配置信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"dest_dir" : "<LocalBackupDir>",
"bucket" : "<Bucket>",
"prefix" : "image/",
"suffixes" : ".png,.jpg",
"cdn_domain" : "down.example.com",
"referer" : "http://www.example.com",
"use_https" : true,
"public" : true,
"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
use_https 设置下载的CDN域名是否是使用 HTTPS 协议
public 空间为公开空间,下载时不会对下载 URL 进行签名,可以提升CDN域名性能,默认为私有空间 N
log_level 下载日志输出级别,可选值为debug,info,warn,error,默认info Y
log_file 下载日志的输出文件,如果不指定会输出到qshell工作目录下默认的文件中,文件名可以在终端输出看到 Y
log_rotate 下载日志文件的切换周期,单位为天,默认为1天即切换到新的下载日志文件 Y
log_stdout 下载日志是否同时输出一份到标准终端,默认为false,主要在调试下载功能时可以指定为true Y

备注:

  1. 在Windows系统下面使用的时候,注意dest_dir的设置遵循D:\\jemy\\backup这种方式。也就是路径里面的\要有两个(\\)。
  2. 在默认不指定cdn_domain的情况下,会从存储源站下载资源,这部分下载产生的流量会生成存储源站下载流量的计费,请注意,这部分计费不在七牛CDN免费10G流量覆盖范围。

示例配置

文件名称download_config.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"dest_dir" : "vvd_backup",
"bucket" : "vvd-space",
"prefix" : "",
"suffixes" : "",
"cdn_domain" : "",
"referer" : "http://cdn.jsdelivr.net/gh/zywvvd/HexoFiles",
"use_https" : true,
"public" : true,
"log_file" : "download.log",
"log_level" : "info",
"log_rotate" : 1,
"log_stdout" : false
}

**注意:**该功能默认需要计费,如果希望享受10G的免费流量,请自行设置cdn_domain参数,如不设置,需支付源站流量费用,无法减免

  • 执行命令
1
qshell qdownload -c 10 download_config.conf
  • 可以写入脚本,双击运行
  • 支持增量备份,过一阵子点一下就行

参考资料