七牛云测试域名失效导致图片外链失效的解决办法

前几天我发现自己博客中图片都不显示了,最后才明白原来是七牛云图片外部链接失效造成的,这是因为七牛云收回了所有测试域名,并且在七牛云后台也无法显示图片并且还无法下载图片。

为了解决这个问题可以使用qrsctl这个工具,我使用的是Mac版本,Linux系统也可以参考如下脚本。

下载后文件为qrsctl.dms,将其改名为qrsctl,chmod +x qrsctl赋予可执行权限。直接在terminal中运行./qrsctl会出现相应说明文档,如下图。

七牛云测试域名失效导致图片外链失效的解决办法_第1张图片

按照如下指令,输入自己七牛云的账号和密码登录。

./qrstcl login  

由于我之前所有图片是在七牛云对象存储中的bucket中,运行如下代码查看目前我建立的所有bucket。

./qrsctl buckets

对我来说得到如下两个bucket。

buckets

如下图,这与七牛云中的bucket吻合。

七牛云测试域名失效导致图片外链失效的解决办法_第2张图片

其中,在我的picture这个bucket中存储了26张图片,如下图。

七牛云测试域名失效导致图片外链失效的解决办法_第3张图片

在命令行中输入如下指令,注意最后是两个英文单引号。

./qrsctl listprefix picture ''

可以得到如下图的结果。

七牛云测试域名失效导致图片外链失效的解决办法_第4张图片

命令行得到的结果与七牛云网页端结果一致,这样就可以一次性得到picture这个bucket中的所有图片名,当然要注意第一行是七牛云自带的一个标志字符串"marker:"。

得到图片名后,可以通过七牛云的如下接口下载一张图片。

qrsctl get   

比如./qrsctl get picture 1.jpg ./i.jpg可以将picture中的1.jpg下载到本地机器当前路径下的1.jpg

将上述几步综合起来批量下载到本地,如下代码按图片原名下载到本地当前路径下。

#!/bin/bash

imgs=`./qrsctl listprefix picture ''`

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

最后一步将所有图片移到了网易云,希望不要再出现类似的幺蛾子了,不然修改博客里面的图片链接很费时间。

你可能感兴趣的:(Linux)