七牛API服务的命名行测试工具,参考文档 七牛开发者中心 命令行工具(qshell)

实践目的

  1. 熟悉存储 API、熟悉 qshell 大部分命令的使用
  2. 方便快速解决 qshell 常见问题
  3. 记录了输入命令和输出结果图,方便理解,也可以作为他人快速理解的材料
  4. 为后期的其他内部系统工作做准备,文档及操作的文件在放在 Github

安装

本质上是单个命令文件,只要放在环境变量能访问的地方即可。

Mac 版操作步骤如下,其他系统参考 命令行工具(qshell)

  1. 下载 qshell
  2. 移动qshell到/usr/local/bin/qshell

account 设置ak、sk

配置AK、SK:qshell acount ak sk。配置后在会生成/Users/jingliu/.qshell/account.json文件,保存ak、sk(加密)

stat 查看文件状态

qshell stat test-pub test/test-fput.mp4

buckets/listbucket/domains/ip/unzip/qetag bucket等通用操作类

buckets 获取当前账号下所有的空间名称

qshell buckets

listbucket 获取test-pub的文件列表

qshell listbucket test-pub test-pub-listbucket.txt

获取/mp4开头的文件列表

qshell listbucket test-pub '/mp4' test-pub-mp4-listbucket.txt

domains 获取指定空间的所有关联域名

qshell domains test-pub

ip 根据淘宝的公开API查询ip地址的地理位置

qshell ip 112.74.185.158

unzip 解压zip文件,支持UTF-8编码和GBK编码

qshell unzip 1.txt.zip

qetag 根据七牛的qetag算法来计算文件的hash

qshell qetag ~/Desktop/11111.mp4

fput/rput/qdownload/prefop/qupload 上传下载类

fput 以文件表单的方式上传一个文件

一般建议如果文件大小超过100MB的话,都使用分片上传rput。

qshell fput test-pub test-fput.mp4 /Users/jingliu/Desktop/test-fput.mp4

前缀,路径,上传入口 覆盖 低频

qshell fput test-pub test/test-fput.ppt /Users/jingliu/Desktop/test-fput.mp4 http://upload.qiniu.com true 1

rput 以分片上传的方式上传一个文件,前缀,路径,上传入口 覆盖 低频

qshell rput test-pub test/qiniu-introduce-4M.pdf /Users/jingliu/Desktop/

qshell-test/fput/test-fput.mp4 http://upload.qiniu.com true 1

qdownload 从七牛空间同步数据到本地,支持只同步某些前缀的文件,支持增量同步

qshell qdownload 3 config.conf

prefop 查询七牛数据处理的结果,通过处理的结果id

qshell prefop z0.5b0b8a8538b9f324a5ea1b3a

qupload 是用来将本地目录中的文件同步到七牛空间中的命令

可以同步父子目录下的所有文件到七牛的对象存储空间中。

mac 示例

输入命令

qshell qupload 1 /Users/jingliu/Desktop/config.json

配置文件

{
"src_dir" : "/Users/jingliu/Desktop/test-dir",
"bucket" : "test-pub"
}

示例图片

结果展示

win qshell 安装

安装qshell和配置环境变量

配置账号密码

上传成功

chgm/copy/move/delete 文件操作类

chgm 修改七牛空间中的一个文件的MimeType,文件类型

qshell chgm test-pub 11.mp4 video/mov

copy 复制七牛空间中的一个文件,可以是 同/不同 一个空间

qshell copy [-overwrite] <SrcBucket> <SrcKey> <DestBucket> [<DestKey>]

不同区域,报错400

qshell copy -overwrite test-pub 11.mp4 test-pub1 test-pub/mp4/11.mp4

同区域

qshell copy -overwrite test-pub 11.mp4 test-pub-hd test-pub/mp4/11.mp4

move 移动或重命名七牛 同/不同 空间中的一个文件

qshell move -overwrite test-pub 11.mp4 test-pub 22.mp4

qshell move -overwrite test-pub 22.mp4 test-pub-hd test-pub/mp4/22-move.mp4

delete 删除七牛空间中的一个文件

qshell delete test-pub-hd test-pub/mp4/22-move.mp4

fetch/sync/prefetch/cdnrefresh 刷新预取类

fetch 从Internet上抓取一个资源并存储到七牛空间中

适合于中小文件的抓取,根据实际经验,基本上适合50MB以下的文件抓取。

如果指定的Key都是一样的,那么会默认覆盖这个Key所对应的文件。

不指定名称则保存hash值。

功能同接口 第三方资源抓取

qshell fetch https://www.baidu.com/img/bdlogo.png test-pub bpng/dlog.png

sync 从Internet上抓取一个资源并存储到七牛空间中

适合大文件的场合,比如1G,100G。

sync指令的基本原理是使用Range方式按照4MB一个块从资源服务器获取数据,然后使用七牛支持的分片上传功能直接传到七牛存储空间中。并不用担心网络中断导致的同步中断,因为采用了分片上传的机制,我们会把每一个成功上传的块的位置记录下来,当下次网络恢复的时候,只需要运行原始命令即可从断点处恢复。

qshell sync <SrcResUrl> <Bucket> <Key> [<UpHostIp>]

UpHostIp #获取,指定ip可减少DNS环节,提升同步速度

华东机房
$ dig up.qiniu.com 华北机房
$ dig up-z1.qiniu.com 华南机房
$ dig up-z2.qiniu.com 北美机房
$ dig up-na0.qiniu.com

qshell sync https://www.baidu.com/img/bdlogo.png test-pub bpng/dlog2.png 115.238.101.35

如下图,可见sync不支持覆盖,必须加上https协议(fetch可忽略)

prefetch 更新七牛空间中从源站镜像过来的文件

配置了镜像存储的空间,在一个文件首次回源源站拉取资源后,就不再回源了。如果源站更新了一个文件,那么这个文件不会自动被同步更新到七牛空间。

同接口文档:镜像资源更新 (prefetch)

qshell prefetch test-pub demo/iconfont/miga/iconfont.css

qshell prefetch test-pub demo/iconfont/miga/demo.css

下图分别是更新和拉新,效果是一样的

cdnrefresh 批量刷新cdn的访问外链

可刷新文件 或 目录。刷新是把cdn节点上的缓存刷新到cdn节点。

注意需要刷新的目录,必须以/结尾。

qshell cdnrefresh torefresh.txt

cat torefresh.txt

cdnprefetch 批量预取cdn的访问外链

可刷新文件 或 目录。预取是把cdn节点上的数据,从源站拉取到cdn节点。

qshell cdnprefetch torefresh.txt

b64encode/b64decode/urlencode/urldecode 编码解码类

b64encode base64编码工具

可选是否使用UrlSafe方式,默认UrlSafe

qshell b64encode 'hello world'

b64decode base64解码工具

可选是否使用UrlSafe方式,默认UrlSafe

qshell b64decode aGVsbG8gd29ybGQ=

urlencode url编码工具

qshell urlencode url带中文

urldecode url解码工具

qshell urldecode url%E5%B8%A6%E4%B8%AD%E6%96%87

ts2d/tms2d/d2ts 时间戳日期类

ts2d 将timestamp(单位秒)转为UTC+8:00中国日期

qshell ts2d 1427252311

主要用来检查上传策略的deadline参数

tms2d 将timestamp(单位毫秒)转为UTC+8:00中国日期

qshell tms2d 1427252311000

d2ts(useless) 该命令用来生成一个Unix时间戳(单位秒)

值是当前时间加上指定的秒数的和。如果可以设置指定时间就好了。

qshell d2ts 3600

qshell d2ts -3600

saveas/reqid/batchsign/privateurl/batchdelete/batchchgm/m3u8delete 其他(批量,私有外链)

saveas 实时处理的saveas链接快捷生成工具

reqid

batchsign 批量根据资源的公开外链生成资源的私有外链

privateurl 生成私有空间资源的访问外链

batchdelete

batchchgm 还支持批量copy,move,rename

m3u8delete 根据流媒体播放列表文件删除七牛空间中的流媒体切片

七牛 qshell 全命令实践的更多相关文章

  1. 七牛Qshell 常用命令打印

    下载 该工具使用Go语言编写而成,当然为了方便不熟悉Go或者急于使用工具来解决问题的开发者,我们提供了预先编译好的各主流操作系统平台的二进制文件供大家下载使用,由于平台的多样性,我们把这些二进制打包放 ...

  2. php七牛批量删除空间内的所有文件方法

    相信大家都在使用七牛的免费云存储服务的同时,有清空七牛云存储镜像文件或者批量删除七牛云空间文件的需求,该怎么做?官方的工具好像并没有提供批量删除的功能,七牛云官方给出的建议是删除空间,再新建一个这样太 ...

  3. 七牛存储qshell工具

    ---恢复内容开始--- 工具地址:https://developer.qiniu.com/kodo/tools/1302/qshell 下载完成后:根据自己的系统选择需要的可执行文件,支持linux ...

  4. 七牛免费SSL证书申请全流程

    购买证书 在七牛ssl 首页点击购买 购买限免证书 补全订单信息 免费证书,随意填写,问题不大 购买成功,查看订单详情,获取 TXT 值信息 添加 DNS TXT 验证 根据上一步,查看证书订单详情, ...

  5. 一个命令完成[打包+同步七牛cdn+上传服务器]

    webpack+gulp+qshell+npm-scripts实现一个命令完成[打包+同步cdn+上传服务器] 说明 由于我们用的七牛云存储,所以cdn也是走的七牛,所以并不适用于其他的cdn,但是思 ...

  6. PLDroidPlayer 是七牛推出的一款免费的适用于 Android 平台的播放器 SDK,采用全自研的跨平台播放内核,拥有丰富的功能和优异的性能,可高度定制化和二次开发。 https://developer.qiniu.com/pili/sdk/…

    PLDroidPlayer PLDroidPlayer 是一个适用于 Android 平台的音视频播放器 SDK,可高度定制化和二次开发,为 Android 开发者提供了简单.快捷的接口,帮助开发者在 ...

  7. 定时备份 MySQL 并上传到七牛

    多数应用场景下,我们需要对重要数据进行备份.并放置到一个安全的地方,以备不时之需. 常见的 MySQL 数据备份方式有,直接打包复制对应的数据库或表文件(物理备份).mysqldump 全量逻辑备份. ...

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

    前言 qshell是利用七牛文档上公开的API实现的一个方便开发者测试和使用七牛API服务的命令行工具.该工具设计和开发的主要目的就是帮助开发者快速解决问题.目前该工具融合了七牛存储,CDN,以及其他 ...

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

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

随机推荐

  1. python测试开发django-51.Ajax发送post请求登录案例

    前言 我想实现一个登录功能:登录的接口是另外一个地方提供,页面上点登录按钮的时候,先访问登录接口,根据接口返回json信息判断是否登录成功,登录成功页面跳转,登录不成功,在登录首页显示失败原因 登录页 ...

  2. 第六周周赛——AK机会不易得,好好把握题解(出自HDU5650,codeforces 616A,624A,659A,655A,658A)

    A题: A题题目链接 题目描写叙述: 位运算 TimeLimit:1000MS  MemoryLimit:65536KB 64-bit integer IO format:%I64d Problem ...

  3. 解决TextView drawableRight左侧图片大小不可控的问题

    通过代码来修改图片的大小: Drawable rightDrawable= context.getResources().getDrawable(R.drawable.more); rightDraw ...

  4. Spring Core Programming(Spring核心编程) - AOP Concepts(AOP基本概念)

    1. What is aspect-oriented programming?(什么是面向切面编程?) Aspects help to modularize cross-cutting concern ...

  5. Docker中部署Mysql5.7和DbAdmin的docker-compose.yml

    一.简述 本文讲Docker通过docker-compose.yml部署Mysql5.7和dbAdmin的方法. 二.文件 1.docker-compose.yml内容如下: version: ' s ...

  6. C++ 无锁数据结构

    https://www.zhihu.com/question/52629893/answer/131731126

  7. k8s应用首页临时改成升级维护页面

    在本地虚拟机 产生一个nginx配置文件 [root@centos-01 dockerfile]# cat weifeng_maintain.conf server { listen 443; ser ...

  8. SQL Server 性能优化实战系列(一)

    数据库服务器主要用于存储.查询.检索企业内部的信息,因此需要搭配专用的数据库系统,对服务器的兼容性.可靠性和稳定性等方面都有很高的要求.        下面是进行笼统的技术点说明,为的是让大家有一个整 ...

  9. 【Inno Setup】添加许可协议,并默认选中我同意按钮

      [Setup] ; xkfile.txt文件不能为空 LicenseFile=C:\Documents and Settings\Administrator\桌面\smqh\xkfile.txt ...

  10. Docker 版本

    1. Docker 版本 长话短说:现在Docker改为基于YY.MM的版本(像Ubuntu),用户可以选择Stable(发布较慢)或者Edge(发布较快)版本. Docker Engine改为Doc ...