最近七牛云回收了测试域名,导致我在上面存的一些图片资源都访问不了。由于疏忽,之前没有注意到七牛云回收测试域名的邮件,导致现在在七牛云上也无法将图片资源下载到本地,传到其他的云上。
遂发起工单,终于找到了解决办法。
下载 qshell 和 qrsctl
使用七牛云的命令行工具 qshell下载地址,和命令行辅助工具 qrsctl下载地址
官方文档里有具体下载安装的步骤,我这边再讲下 mac 上安装的步骤
将下载后的 qshell 和 qrsctl 解压到自定义的目录,我解压到了 ~/Documents/tools
因为在 mac 中有权限的问题,先赋予它可执行权限,进入到该目录1
chmod a+x qshell qrsctl
之后在 ~/.zshrc 里配置环境变量1
2export PATH=$PATH:/Users/kepeilin/Documents/tools/qshell
export PATH=$PATH:/Users/kepeilin/Documents/tools/qrsctl
保存后在命令行执行 source ~/.zshrc
是配置生效
登录账号
使用 qshell 和 qrsctl 分别登录你的账号
qshell 登录
进去七牛云官网的 个人中心 -> 密钥管理 获取你的公钥和私钥信息
name 是登录邮箱1
qshell account ak sk name
登录后查看空间是否匹配1
qshell buckets
qrsctl 登录
User 为你的登录邮箱,Passwd 就是密码1
qrsctl login <User> <Passwd>
登录成功后查看个人信息是否匹配1
qrsctl info
将图片下载到本地
qrsctl 只提供了一次性下载一张静态资源的接口1
qrsctl get <Bucket> <Key> <DestFile>
Bucket 是空间名,Key 是文件名,DestFile 是本地的路径
可是对于拥有大量图片的人来说,这样一个个文件地下载,效率太低
批量下载图片
利用 qshell 的 listbucket 命令可以获得指定空间下的所有文件
我这边使用的空间名为 blog
在命令行执行1
qshell listbucket blog | awk '{print $1}' >> files
files 的路径为 /Users/kepeilin/Documents/kpl/cdn-images/files
将七牛云空间里的所有文件名保存到 files 里
接着写一个 shell 文件批量下载图片, vim download.sh
1
2
3
4for line in `cat /Users/kepeilin/Documents/kpl/cdn-images/files`
do
qrsctl get blog $line ./images/$line
done
回到 /Users/kepeilin/Documents/kpl/cdn-images
执行 ./download.sh
等到所有的 info 信息结束之后,所有的文件都被保存到 /Users/kepeilin/Documents/kpl/cdn-images/images
目录下
我们发现该目录下多了一些没用的文件,将它们删除1
rm *.(jpg1|jpg2|jpeg1|jpeg2|png1|png2|gif1|gif2|pdf1|pdf2|mp41|mp42)
使用 sm.ms 取代七牛云
目前七牛云每次新建一个空间只能使用30天的测试域名,30天之后就会回收,除非绑定域名。而这个域名必须进行 ICP 备案,很遗憾我的域名是国外域名,而且 2018 年工信部发了通知今年开始国外域名无法进行 ICP 备案,所以只能放弃七牛云。
这边推荐一个免费的图床网站 sm.ms,无外链限制,无流量限制
不过由于没有区分用户,使用该图床不好管理自己的上传图片,所以我再安利一个图片管理工具 PicGo
windows,linux,mac版本都有,进入 github 依照自己的环境下载最新版本的 release 包即可