七牛云——qshell一个神奇的工具

前言

qshell是利用七牛文档上公开的API实现的一个方便开发者测试和使用七牛API服务的命令行工具。该工具设计和开发的主要目的就是帮助开发者快速解决问题。目前该工具融合了七牛存储,CDN,以及其余的一些七牛服务中常用到的方法对应的便捷命令,这个工具是真的好用!我目前使用过的有批量重命名,采集网上的资源到七牛云空间!linux

工具

GitHub:https://github.com/qiniu/qshellgit

下载

该工具使用Go语言编写而成,固然为了方便不熟悉Go或者急于使用工具来解决问题的开发者,七牛云提供了预先编译好的各主流操做系统平台的二进制文件供你们下载使用,因为平台的多样性,七牛云把这些二进制打包放到一个文件里面,请你们根据下面的说明各自选择合适的版原本使用。github

版本 支持平台 连接
qshell v2.4.0 Windows X86 下载
qshell v2.4.0 Windows amd64 下载
qshell v2.4.0 Linux X86 下载
qshell v2.4.0 Linux amd64 下载
qshell v2.4.0 Linux Arm 下载
qshell v2.4.0 Mac OS 下载

安装

该工具因为是命令行工具,因此只须要从上面的下载以后便可使用。其中文件名和对应系统关系以下:算法

文件名 描述
qshell_linux_x86 Linux 32位系统
qshell_linux_x64 Linux 64位系统
qshell_windows_x86.exe Windows 32位系统
qshell_windows_x64.exe Windows 64位系统
qshell_darwin_x64 Mac 64位系统,主流的系统

Linux和Mac平台shell

(1)权限
若是在Linux或者Mac系统上遇到Permission Denied的错误,请使用命令chmod +x qshell来为文件添加可执行权限。这里的qshell是上面文件重命名以后的简写。数据库

(2)任何位置运行
对于Linux或者Mac,若是但愿可以在任何位置均可以执行,那么能够把qshell所在的目录加入到环境变量$PATH中去。假设qshell命令被解压到路径/home/jemy/tools目录下面,那么咱们能够把以下的命令写入到你所使用的bash所对应的配置文件中,若是是/bin/bash,那么就是~/.bashrc文件,若是是/bin/zsh,那么就是~/.zshrc文件中。写入的内容为:json

export PATH=$PATH:/home/jemy/tools

保存完毕以后,能够经过两种方式当即生效,其一为输入source ~/.zshrc或者source ~/.bashrc来使配置当即生效,或者彻底关闭命令行,而后从新打开一个便可,接下来就能够在任何位置使用qshell命令了。windows

Windows平台centos

(1)闪退问题
本工具是一个命令行工具,在Windows下面请先打开cmd终端,经过cmd终端来使用qshell便可,不要双击打开,不然会出现闪退现象。api

(2)任何位置运行
若是你但愿能够在任意目录下使用qshell,请将qshell工具可执行文件所在目录添加到系统的环境变量中。因为Windows系统是图形界面,因此方便一点。假设qshell.exe命令被解压到路径E:\jemy\tools目录下面,那么咱们把这个目录放到系统的环境变量PATH里面。

windows-qshell-path-settings.png

qshell使用

  1. 添加密钥和帐户名称

该工具备两类命令,一类须要鉴权,另外一类不须要。

须要鉴权的命令都须要依赖七牛帐号下的 AccessKey, SecretKeyName。因此这类命令运行以前,须要使用 account 命令来添加 AccessKeySecretKeyName
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信息,具体配置方法参考下面配置文件一节。

  1. 添加完帐户后,就可使用qshell上传,下载文件了

帐户管理

qshell支持多种方式的帐户管理:

  1. 使用qshell account 记录帐户信息到本地的数据库
  2. 使用qshell -C 配置文件的方式来设置帐户信息
  3. 有的qshell子命令支持经过--access-key, --secret-key选项来设置ak/sk信息

那么有可能上面三种方式都提供了帐户的信息,所以这三种方式有个优先级(从高到低):
3 > 2 > 1

也就是说,若是命令行提供了ak/sk那么使用命令行的信息;若是没有提供就使用配置文件中的信息,若是配置文件没有提供ak/sk, 那么会去本地数据库查找当前的用户。

使用qshell user子命令能够用来管理记录的多帐户信息。

  1. qshell user ls能够列举帐户下全部的帐户信息
  2. qshell user cu 能够用来切换帐户
  3. qshell user cu 不携带 的话会切换到最近的上个帐户;好比我在A帐户作完操做后,使用qshell user cu B到了B 帐户,那么使用qshell user cu能够切回到A帐户.
  4. qshell user lookup 查找用户是否在本地数据库中

是使用qshell account 记录的时候的 名字,这个名字能够任意指定。

开启命令的自动补全

linux上,使用bash

在centos上,须要安装bash-completion包,默认该包没有安装

$ yum install bash-completion -y

给当前的bash加入自动补全, 运行命令

$ source <(qshell completion bash)

也能够把这个配置加入bash的启动文件中,这样到bash启动的时候,会自动加载qshell的补全配置:

$ echo "source <(qshell completion bash)" >> ~/.bashrc

Mac上,使用zsh
把以下代码加入zsh的启动文件中~/.zshrc, 而后source ~/.zshrc

if [ $commands[qshell] ]; then
  source <(qshell completion zsh)
fi

命令选项

该工具还有一些有用的选项参数以下:

参数 描述
-d 设置是否输出DEBUG日志,若是指定这个选项,则输出DEBUG级别的日志
-h 打印命令列表帮助信息,遇到参数忘记的状况下,可使用该命令
-v 打印工具版本,反馈问题的时候,请提早告知工具对应版本号
-C qshell配置文件, 其配置格式请看下一节
-L 使用当前工做路径做为qshell的配置目录

配置文件

  1. 配置文件格式支持json, 若是须要使用配置文件,须要在家目录下建立文件名为.qshell.json的json文件
  2. 配置文件能够配置如io host, api host, rs hsot, rsf host, 这些若是没有指定,程序会自动选择
  3. 配置文件支持设置ak, sk

例子:

  1. 默认官方的列举空间的文件使用的是rsf.qiniu.com域名,若是由于某种缘由,好比私有存储,须要替换使用rs-test.qiniu.com这个域名的话,那么只须要
    在家目录下建立文件名字为.qshell.json的配置文件,文件内容为
{
    "hosts": {
        "rsf": "rs-test.qiniu.com"
    }
}

若是想要更改io host为io-test.qiniu.com的话,只须要继续在上面的hosts中添加,以下:

{
    "hosts": {
        "rs": "rs-test.qiniu.com",
        "io": "io-test.qiniu.com"
    }
}

同理若是所有修改的话

{
    "hosts": {
        "rs": "rs-test.qiniu.com",
        "io": "io-test.qiniu.com",
        "api": "",
        "rsf": ""
    }
}
  1. 若是不想使用qshell account ak sk name的方式记录密钥信息,也能够在配置文件中指定ak, sk
{
   "access_key": "",
   "secret_key": "",
}

这样qshell会优先使用配置文件中配置的ak/sk信息,若是在这个配置文件中没有找到密钥信息,那么会去qshell account记录的本地数据库寻找.

命令列表

存储相关命令

命令 类别 描述 详细
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 其余 输出本地指定路径下全部的文件列表 文档
prefetch 其余 更新七牛空间中从源站镜像过来的文件 文档
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 抓取 从亚马逊存储迁移数据到七牛存储 文档
相关文章
相关标签/搜索