七牛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

配置文件

  1. {
  2. "src_dir" : "/Users/jingliu/Desktop/test-dir",
  3. "bucket" : "test-pub"
  4. }

示例图片

结果展示

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>]

  1. UpHostIp #获取,指定ip可减少DNS环节,提升同步速度
  2. 华东机房
  3. $ dig up.qiniu.com
  4. 华北机房
  5. $ dig up-z1.qiniu.com
  6. 华南机房
  7. $ dig up-z2.qiniu.com
  8. 北美机房
  9. $ 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. SAP传输请求自动发布

        最近公司服务器做迁移,原R3 PRE需要迁到另外的地方,迁移后一段时间内,需要两套PRE环境同时运行,过一段时间后才将传输路线切换到新的PRE.在切换前,要求新PRE环境也要正常同步发布请求, ...

  2. IIS Express ArgumentOutOfRangeException

    重装了VS,调试网站,IIS Express 打开时遇到如下错误. “/”应用程序中的服务器错误. 指定的参数已超出有效值的范围.参数名: site 说明: 执行当前 Web 请求期间,出现未经处理的 ...

  3. ionic使用iframe时无法显示网页或报错

    ionic使用iframe时无法显示网页或报错 Uncaught DOMException: Blocked a frame with origin 在config.xml中添加 <access ...

  4. Unity应用架构设计(2)——使用中介者模式解耦ViewModel之间通信

    当你开发一个客户端应用程序的时候,往往一个单页会包含很多子模块,在不同的平台下,这些子模块又被叫成子View(视图),或者子Component(组件).越是复杂的页面,被切割出来的子模块就越多,子模块 ...

  5. Spring Boot入门一:在Eclipse中使用Spring boot

    1.安装插件 打开Eclipse-Help-Eclipse Marketplace-搜索spring tools,找到对应工具安装 下载完成后,重启eclipse,选择新建project-spring ...

  6. crawler_exa4

    优化中... #! /usr/bin/env python # -*- coding:utf-8 -*- # Author: Tdcqma ''' 获取漏洞目标站点:绿盟安全漏洞通告 v1.0: 由于 ...

  7. mybatis 映射器(mappers) 配置说明 加载映射文件方式

    映射器(mappers) 既然 MyBatis 的行为已经由上述元素配置完了,我们现在就要定义 SQL 映射语句了.但是首先我们需要告诉 MyBatis 到哪里去找到这些语句. Java 在自动查找这 ...

  8. 火币网行情获取的websocket客户端

    从验证结果看应该是网络关闭了,不过程序写的不错,可以作为其它websocket客户端的测试程序 # !/usr/bin/env python # -*- coding: utf-8 -*- # aut ...

  9. python -- ajax数组传递和后台接收

    phper转pythoner 在当初使用php做网站开发的时候,前端ajax传递数据的时候,就是直接将一个数组传递过去,后台用$_POST['key']接收即可,没有考虑那么细,想来这不都是理所当然的 ...

  10. unity 改变鼠标样式的两种方法

    1.第一个直接改变鼠标样式 public var cursorTexture:Texture2D; private var changeFlag = false; function Update(){ ...