七牛 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 ...
随机推荐
- Jetpack 迁移到 androidX support MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- SeaweedFS的配置使用
SeaweedFS是一个简单并且高度可扩展的分布式文件系统,可以存储数十亿的文件并且快速获得文件,特别适合于有效处理小文件,这里我们简称为weed,weed的主节点不管理文件元数据而是仅管理文件卷,这 ...
- 使用http load测试qps
官网 http://acme.com/software/http_load/ 安装 wget http://acme.com/software/http_load/http_load-12mar200 ...
- jQuery数据转换与提交
json2.js序列化,即JSON对象转换成String字符串: JSON.stringify({ id: 1, name: 'jsons' }); 反序列化,即String转JSON对象: JSON ...
- protobuf 动态创建
https://www.ibm.com/developerworks/cn/linux/l-cn-gpb/index.html https://originlee.com/2015/03/14/ana ...
- java 线程间的通信 (wait / notify / notifyAll)
package waitnotifytest; import java.util.Collections; import java.util.List; import com.google.commo ...
- CMD 命令1
cmd /c dir 是执行完dir命令后关闭命令窗口. cmd /k dir 是执行完dir命令后不关闭命令窗口. cmd /c start dir 会打开一个新窗口后执行dir指令,原窗口会关闭. ...
- Java数据结构之LinkedList、ArrayList的效率分析
前言: 在我们平常开发中难免会用到List集合来存储数据,一般都会选择ArrayList和LinkedList,以前只是大致知道ArrayList查询效率高LinkedList插入删除效率高,今天来实 ...
- cn_windows_10_enterprise_version_1703_updated_june_2017_x64_dvd_10720588.iso
ed2k://|file|cn_windows_10_enterprise_version_1703_updated_june_2017_x64_dvd_10720588.iso|4959832064 ...
- 【C++】C++中的流
目录结构: contents structure [-] 1.IO类 IO对象无拷贝状态 条件状态 文件流 文件模式 string流 1.IO类 除了istream和ostream之外,标准库还定义了 ...