前言

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

工具

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

下载

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

版本 支持平台 链接
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平台

(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文件中。写入的内容为:

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

保存完毕之后,可以通过两种方式立即生效,其一为输入source ~/.zshrc或者source ~/.bashrc来使配置立即生效,或者完全关闭命令行,然后重新打开一个即可,接下来就可以在任何位置使用qshell命令了。

Windows平台

(1)闪退问题

本工具是一个命令行工具,在Windows下面请先打开cmd终端,通过cmd终端来使用qshell即可,不要双击打开,否则会出现闪退现象。

(2)任何位置运行

如果你希望可以在任意目录下使用qshell,请将qshell工具可执行文件所在目录添加到系统的环境变量中。由于Windows系统是图形界面,所以方便一点。假设qshell.exe命令被解压到路径E:\jemy\tools目录下面,那么我们把这个目录放到系统的环境变量PATH里面。

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 抓取 从亚马逊存储迁移数据到七牛存储 文档

七牛云——qshell一个神奇的工具的更多相关文章

  1. 七牛云 qshell 使用

    七牛云 qshell 控制台工具上传 命令:qshell fput another1 demo.txt /users/tianyang/demo.txt ======================= ...

  2. 七牛云图床及MPIC工具使用

    考虑到图片更容易被人接受,但是大量图片又会延迟博客加载速度.因此,个人感觉可以把静态文件资源托管在云端,这样加载的话就不至于太慢. 注册七牛云 实名验证通过 创建文件存储 内容管理-上传图片 下载Mp ...

  3. 七牛云qshell工具定时备份空间文件到本地

    qshell 是利用七牛文档上公开的 API实现的一个方便开发者测试和使用七牛API服务的命令行工具,使用该工具可以实现很多的功能,今天就分享一下利用qshell定时备份空间文件到本地 1.下载qsh ...

  4. Typora + 七牛云图床快速配置,告别手动上传图片!

    大家好,我是zeroing,本文将介绍关于 Typora 软件如何配置七牛云图床,实现图片即插即用,可以先看一下最终效果! 可以看到图片借助 Typora 软件自动将本地存储转化为第三方图片网络链接 ...

  5. 七牛云整合Ueditor的ThinkPHP版本

    首先去七牛云官网下载phpSDK工具放在Think/library/Vendor下. ueditor后台调用方法: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...

  6. thinkphp3.2使用七牛云上传文件

    最近项目中用到了七牛云服务,来分享一下thinkphp使用七牛云来进行文件上传 1.首先在七牛云创建一个空间,例如空间名为test.获取secrectKey,accessKey 2.在thinkphp ...

  7. 七牛云创建存储空间并绑定自定义域名-https协议

    七牛云创建存储空间并绑定自定义域名-https协议 一.准备 0.绑定自定义域名的前提:你起码拥有过一个备案过的域名[一级域名] 1.在七牛云创建一个存储空间 2.存储空间绑定自定义域名(cdn加速) ...

  8. 使用qshell备份七牛云存储文件

    qshell是利用七牛文档上公开的API实现的一个方便开发者测试和使用七牛API服务的命令行工具.我们可以利用它来将七牛云上存储的文件备份到本地. 它提供Mac OSX, Linux, Windows ...

  9. Linux下七牛云存储qrsync命令行上传同步工具

    原址:https://m.aliyun.com/yunqi/ziliao/54370 VPS数据备份是一个重要的工作,之前在文章:使用七牛云存储自动备份VPS数据分享过使用七牛云存储提供的工具QRSB ...

随机推荐

  1. 011 SpringCloud 学习笔记7-----Zuul网关

    1.Zuul网关概述 通过前面的学习,使用Spring Cloud实现微服务的架构基本成型,大致是这样的: 我们使用Spring Cloud Netflix中的Eureka实现了服务注册中心以及服务注 ...

  2. Java操作JSON数据(3)--fastjson操作JSON数据

    fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean.本文介绍下fastjs ...

  3. Word 插入目录详细教程 -- 视频教程(6)

    >> 视频教程链接:B站,速度快,清晰 更多关于插入目录的方法,参看:Word插入目录系列 未完 ...... 点击访问原文(进入后根据右侧标签,快速定位到本文)

  4. Selenium+Java(十)Selenium常用方法

    前言: 通过前几篇博客的已经了解了元素如何定位,提示框下拉框如何处理,多表单,鼠标键盘操作.此篇博客来介绍拿到想应的driver对象后如果对于对象做一些操作. get //打开网站 driver.ge ...

  5. MOOC 数据库笔记(三):关系模型之基本概念

    关系模型的基本概念 关系模型简述 1.最早由E.F.Codd在1970年提出. 2.是从表(Table)及表的处理方式中抽象出来的,是在对传统表及其操作进行数学化严格定义的基础上,引入集合理论与逻辑学 ...

  6. java之基本技术点总结博客

    泛型的理解 聊一聊-JAVA 泛型中的通配符 T,E,K,V,? 类,接口的继承和实现的规则 类与类之间只能继承,并且是单继承,可以多级继承 类与接口之间可以实现,一个类可以实现多个接口 接口和接口之 ...

  7. Redis运维利器 -- RedisManager

    Redis作为一个基于内存的可持久化的日志型.Key-Value数据库,以其出色的性能表现以及高可用性在许多公司有着举足轻重的地位.伴随着业务量的增长,redis集群的规模不可避免的需要扩大,此时re ...

  8. Kafka启用SASL_PLAINTEXT动态配置JAAS文件的几种方式

    Kafka是广泛使用消息服务,很多情况下关于认证部分我都是默认的配置,也就是不需要用户名/密码,也不配置证书.在内网或者在项目组内部可以,但是设计的跨部门时一般处于安全考虑都需要加上认证,防止kafk ...

  9. 使用KONG网关实现接口迁移的灰度验证

    在我们对一个API站点进行微服务化的过程中,使用KONG网关可以实现以下几个效果: 1. 业务线无感知,其实内部已经被Kong转到其他站点上执行了,这对业务线特别友好. 2. 可以实现租户级/接口级灰 ...

  10. 如何删除mysql注释

    Linux命令删除注释 先把库表导出成一个.sql文件,然后使用sed命令删除注释.此种适用于mysql端口不开外网的情况. $ cat create_table.sql create table t ...