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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lkj345/article/details/83382636

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

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

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

qrsctl

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

./qrstcl login <your username> <your password>

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

./qrsctl buckets

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

buckets

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

buckets

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

扫描二维码关注公众号,回复: 3866524 查看本文章

picture

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

./qrsctl listprefix picture ''

可以得到如下图的结果。

listprefix

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

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

qrsctl get <Bucket> <Key> <DestFile>

比如./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

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

猜你喜欢

转载自blog.csdn.net/lkj345/article/details/83382636