七牛 qshell 全命令实践

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

实践目的
安装
account 设置ak、sk  // 需要上传文件必须设置
stat 查看文件状态
buckets/listbucket/domains/ip/unzip/qetag bucket等通用操作类
buckets 获取当前账号下所有的空间名称
listbucket 获取test-pub的文件列表
domains 获取指定空间的所有关联域名
ip 根据淘宝的公开API查询ip地址的地理位置
unzip 解压zip文件,支持UTF-8编码和GBK编码
qetag 根据七牛的qetag算法来计算文件的hash
fput/rput/qdownload/prefop/qupload 上传下载类
fput 以文件表单的方式上传一个文件
rput 以分片上传的方式上传一个文件,前缀,路径,上传入口 覆盖 低频
qdownload 从七牛空间同步数据到本地,支持只同步某些前缀的文件,支持增量同步
prefop 查询七牛数据处理的结果,通过处理的结果id
qupload 是用来将本地目录中的文件同步到七牛空间中的命令
mac 示例
win qshell 安装
chgm/copy/move/delete 文件操作类
chgm 修改七牛空间中的一个文件的MimeType,文件类型
copy 复制七牛空间中的一个文件,可以是 同/不同 一个空间
move 移动或重命名七牛 同/不同 空间中的一个文件
delete 删除七牛空间中的一个文件
fetch/sync/prefetch/cdnrefresh 刷新预取类
fetch 从Internet上抓取一个资源并存储到七牛空间中
sync 从Internet上抓取一个资源并存储到七牛空间中
prefetch 更新七牛空间中从源站镜像过来的文件
cdnrefresh 批量刷新cdn的访问外链
cdnprefetch 批量预取cdn的访问外链
b64encode/b64decode/urlencode/urldecode 编码解码类
b64encode base64编码工具
b64decode base64解码工具
urlencode url编码工具
urldecode url解码工具
ts2d/tms2d/d2ts 时间戳日期类
ts2d 将timestamp(单位秒)转为UTC+8:00中国日期
tms2d 将timestamp(单位毫秒)转为UTC+8:00中国日期
d2ts(useless) 该命令用来生成一个Unix时间戳(单位秒)
saveas/reqid/batchsign/privateurl/batchdelete/batchchgm/m3u8delete 其他(批量,私有外链)
saveas 实时处理的saveas链接快捷生成工具
reqid
batchsign 批量根据资源的公开外链生成资源的私有外链
privateurl 生成私有空间资源的访问外链
batchdelete
batchchgm 还支持批量copy,move,rename
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 根据流媒体播放列表文件删除七牛空间中的流媒体切片

发布了48 篇原创文章 · 获赞 12 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/qq_40999917/article/details/103839578