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
里面。
该工具备两类命令,一类须要鉴权,另外一类不须要。
须要鉴权的命令都须要依赖七牛帐号下的 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支持多种方式的帐户管理:
那么有可能上面三种方式都提供了帐户的信息,所以这三种方式有个优先级(从高到低):
3 > 2 > 1
也就是说,若是命令行提供了ak/sk那么使用命令行的信息;若是没有提供就使用配置文件中的信息,若是配置文件没有提供ak/sk, 那么会去本地数据库查找当前的用户。
使用qshell user子命令能够用来管理记录的多帐户信息。
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的配置目录 |
例子:
{ "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": "" } }
{ "access_key": "", "secret_key": "", }
这样qshell会优先使用配置文件中配置的ak/sk信息,若是在这个配置文件中没有找到密钥信息,那么会去qshell account记录的本地数据库寻找.
命令 | 类别 | 描述 | 详细 |
---|---|---|---|
account | 帐号 | 设置或显示当前用户的AccessKey 和SecretKey |
文档 |
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 | 其余 | 生成私有空间资源的访问外链 | 文档 |
命令 | 描述 | 详细 |
---|---|---|
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 | 抓取 | 从亚马逊存储迁移数据到七牛存储 | 文档 |