Error message here!

Hide Error message here!

忘记密码?

Error message here!

请输入正确邮箱

Hide Error message here!

密码丢失?请输入您的电子邮件地址。您将收到一个重设密码链接。

Error message here!

返回登录

Close

七牛 qshell 全命令实践

刘靖 2019-01-24 18:38:00 阅读数:198 评论数:0 点赞数:0 收藏数:0

七牛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 根据流媒体播放列表文件删除七牛空间中的流媒体切片

版权声明
本文为[刘靖]所创,转载请带上原文链接,感谢
https://www.cnblogs.com/shliujing/p/qi-niu-qshell-quan-ming-ling-shi-jian.html

编程之旅,人生之路,不止于编程,还有诗和远方。
阅代码原理,看框架知识,学企业实践;
赏诗词,读日记,踏人生之路,观世界之行;