qshell 备份七牛云文件

160 阅读7分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第12天,点击查看活动详情


title: qshell 备份七牛云文件 mathjax: false date: 2021-09-10 22:35:14 tags: [Tools, Qshell] categories: [Tools, Qshell]

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

简介

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

下载

安装

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

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

  • 需要配置密钥信息

$ qshell account <AccessKey> <SecretKey> <name>
  • 验证是否成功
$ 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抓取异步抓取网络资源到七牛存储空间文档
m3u8deletem3u8根据流媒体播放列表文件删除七牛空间中的流媒体切片文档
m3u8replacem3u8修改流媒体播放列表文件中的切片引用域名文档
batchsign其他批量根据资源的公开外链生成资源的私有外链文档
dircache其他输出本地指定路径下所有的文件列表文档
privateurl其他生成私有空间资源的访问外链文档

CDN 相关的命令

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

工具类命令

命令描述详细
b64encodebase64编码工具,可选是否使用UrlSafe方式,默认UrlSafe文档
b64decodebase64解码工具,可选是否使用UrlSafe方式,默认UrlSafe文档
urlencodeurl编码工具文档
urldecodeurl解码工具文档
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 命令

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

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

{
    "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,默认infoY
log_file下载日志的输出文件,如果不指定会输出到qshell工作目录下默认的文件中,文件名可以在终端输出看到Y
log_rotate下载日志文件的切换周期,单位为天,默认为1天即切换到新的下载日志文件Y
log_stdout下载日志是否同时输出一份到标准终端,默认为false,主要在调试下载功能时可以指定为trueY

备注:

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

示例配置

文件名称download_config.conf

{
    "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参数,如不设置,需支付源站流量费用,无法减免

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

参考资料