使用qrsctl批量下载七牛云存储文件

2019-02-19

由于Markdown文档图床需要,之前选用了七牛作为云存储,但是前几天突然发现我所有的图片外链全部失效了, 原来是七牛将测试域名回收了,同时我自己的已备案域名也已经过期,导致我存储在七牛中的所有图片既不能预览,也不能下载,甚是恶心,在七牛的官网翻了一圈,总算是找到了把所有文件下载下来的解决方案。

image.png

安装命令行辅助工具(qrsctl)

下载地址:https://developer.qiniu.com/kodo/tools/1300/qrsctl

image.png

我这里使用的macOS,其他系统大同小异,参考着来吧。

cd ~/Downloads
wget http://devtools.qiniu.com/darwin/amd64/qrsctl

## 赋予qrsctl可执行权限
chmod +x qrsctl

## 执行测试
./qrsctl

image.png

出现如图所示的文档提示,表示已经配置好了,至于要不要加到/usr/local/bin中,就没有必要了,临时用一下嘛

登陆

./qrsctl login <User> <Passwd>

查询buckets

./qrsctl buckets

image.png

得到当前账号下的所有存储空间后,记住名字,后面就会用到拿来下载了。

查询文件清单

./qrsctl listprefix <Bucket Name> ''

image.png

下载指定文件

#./qrsctl get <Bucket Name> <File Name> <Dest File>
# 下载指定文件
./qrsctl get filestore 2018-08-28-16-54-52.jpg ~/Downloads/2018-08-28-16-54-52.jpg

批量下载脚本

按照以上的流程,一次只能下载一个文件,简单的写个脚本来完成批量下载吧

#!/bin/bash

imgs=`./qrsctl listprefix filestore ''`

i=0 
echo $imgs | tr " " "\n" | while read line
do
    if(($i>0))
    then
        echo $line
        ./qrsctl get filestore $line ./$line
    fi
    i=$(($i+1))
done

### 给脚本命名为get.sh, 并赋予可执行权限,执行后就开始下载了。。image.png

image.png

这个脚本达不到全自动的目的,但是将所有文件下载下来还是妥妥的,等下载完成后,就告别这个坑爹的七牛吧~