七牛 qshell 全命令实践
七牛API服务的命名行测试工具,参考文档 七牛开发者中心 命令行工具(qshell)
- 实践目的
- 安装
- buckets/listbucket/domains/ip/unzip/qetag bucket等通用操作类
- fput/rput/qdownload/prefop/qupload 上传下载类
- chgm/copy/move/delete 文件操作类
- fetch/sync/prefetch/cdnrefresh 刷新预取类
- b64encode/b64decode/urlencode/urldecode 编码解码类
- ts2d/tms2d/d2ts 时间戳日期类
- saveas/reqid/batchsign/privateurl/batchdelete/batchchgm/m3u8delete 其他(批量,私有外链)
实践目的
- 熟悉存储 API、熟悉 qshell 大部分命令的使用
- 方便快速解决 qshell 常见问题
- 记录了输入命令和输出结果图,方便理解,也可以作为他人快速理解的材料
- 为后期的其他内部系统工作做准备,文档及操作的文件在放在 Github
安装
本质上是单个命令文件,只要放在环境变量能访问的地方即可。
Mac 版操作步骤如下,其他系统参考 命令行工具(qshell)
- 下载 qshell
- 移动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 全命令实践的更多相关文章
- 七牛Qshell 常用命令打印
下载 该工具使用Go语言编写而成,当然为了方便不熟悉Go或者急于使用工具来解决问题的开发者,我们提供了预先编译好的各主流操作系统平台的二进制文件供大家下载使用,由于平台的多样性,我们把这些二进制打包放 ...
- php七牛批量删除空间内的所有文件方法
相信大家都在使用七牛的免费云存储服务的同时,有清空七牛云存储镜像文件或者批量删除七牛云空间文件的需求,该怎么做?官方的工具好像并没有提供批量删除的功能,七牛云官方给出的建议是删除空间,再新建一个这样太 ...
- 七牛存储qshell工具
---恢复内容开始--- 工具地址:https://developer.qiniu.com/kodo/tools/1302/qshell 下载完成后:根据自己的系统选择需要的可执行文件,支持linux ...
- 七牛免费SSL证书申请全流程
购买证书 在七牛ssl 首页点击购买 购买限免证书 补全订单信息 免费证书,随意填写,问题不大 购买成功,查看订单详情,获取 TXT 值信息 添加 DNS TXT 验证 根据上一步,查看证书订单详情, ...
- 一个命令完成[打包+同步七牛cdn+上传服务器]
webpack+gulp+qshell+npm-scripts实现一个命令完成[打包+同步cdn+上传服务器] 说明 由于我们用的七牛云存储,所以cdn也是走的七牛,所以并不适用于其他的cdn,但是思 ...
- PLDroidPlayer 是七牛推出的一款免费的适用于 Android 平台的播放器 SDK,采用全自研的跨平台播放内核,拥有丰富的功能和优异的性能,可高度定制化和二次开发。 https://developer.qiniu.com/pili/sdk/…
PLDroidPlayer PLDroidPlayer 是一个适用于 Android 平台的音视频播放器 SDK,可高度定制化和二次开发,为 Android 开发者提供了简单.快捷的接口,帮助开发者在 ...
- 定时备份 MySQL 并上传到七牛
多数应用场景下,我们需要对重要数据进行备份.并放置到一个安全的地方,以备不时之需. 常见的 MySQL 数据备份方式有,直接打包复制对应的数据库或表文件(物理备份).mysqldump 全量逻辑备份. ...
- 七牛云——qshell一个神奇的工具
前言 qshell是利用七牛文档上公开的API实现的一个方便开发者测试和使用七牛API服务的命令行工具.该工具设计和开发的主要目的就是帮助开发者快速解决问题.目前该工具融合了七牛存储,CDN,以及其他 ...
- 七牛云qshell工具定时备份空间文件到本地
qshell 是利用七牛文档上公开的 API实现的一个方便开发者测试和使用七牛API服务的命令行工具,使用该工具可以实现很多的功能,今天就分享一下利用qshell定时备份空间文件到本地 1.下载qsh ...
随机推荐
- .NET上传大文件时提示Maximum request length exceeded错误的解决方法
使用IIS托管应用程序时,当我们需要上传大文件(4MB以上)时,应用程序会提示Maximum request length exceeded的错误信息.该错误信息的翻译:超过最大请求长度. 解决方法: ...
- 微信小程序开发注意事项总结:上拉加载失效、转义字符等
1.上拉加载失效 问题背景:部分页面上拉加载失效.当使用flex布局,底部固定,中间采用自适应撑满全屏实现滚动时,发现上拉加载失效,不知道是什么原因. 解决问题: 在小程序中,官方为我们提供了原生的下 ...
- CentOS7通过rsync+crontab实现两台服务器文件同步
centos7系统中已经默认安装rsync 1:主服务器配置 (1)修改rsyncd.conf 配置文件 [root@localhost app]# vi /etc/rsyncd.conf motd ...
- Spring HttpInvoker 从实战到源码追溯
Spring HttpInvoker 作为 Spring 家族中老牌远程调用模型,深受开发者喜爱. 其主要目的是来执行基于 HTTP 的远程调用(轻松穿越防火墙),并使用标准的 JDK 序列化机制. ...
- Xcode10.1 import头文件无法索引
如下路径,修改设置 Xcode --> File --> Workspace Settings --> Build System --> Legacy Build System
- 偏离中轴的cos半球积分问题
问题: 如果N与n重合,则就是普通的cos半球积分,地球人都知道结果是pi. 对于N与n不重合的一般情况,稍微麻烦一些. 解法1(同济高数课本的方法,参考同济高数第六版第二册“曲面积分”一章): 解法 ...
- BizTalk RosettaNet解决方案搭建
contoso为证书颁发机构 分别在两台服务器中配置hosts 192.168.199.160 fabrikam 192.168.199.225 contoso 安装CA 控制面板,添加删除程序 打开 ...
- springmvc(二) ssm框架整合的各种配置
ssm:springmvc.spring.mybatis这三个框架的整合,有耐心一步步走. --WH 一.SSM框架整合 1.1.整合思路 从底层整合起,也就是先整合mybatis与spring,然后 ...
- Android内存泄漏杂谈
内存泄漏:是指内存得不到GC的及时回收,从而造成内存占用过多.从而导致程序Crash,也就是常说的OOM. 一.static 先来看以下一段代码 public class DBHelper { pri ...
- 浏览器神器--vimium
自从学会了正确的坐姿,坐在电脑一整天腰也不酸了.背也不痛了,精神倍棒吃嘛嘛香 zuomeng.png 但奈何使用鼠标久了,手腕.肩膀依旧疼痛.偶尔逛知乎,看到有人推荐chrome浏览器的vimiu ...