【教程】解决七牛云图片外链生效 - 5402 获取bucket域名失败

前段时间忙完一波,想要回来继续把机器学习的课程笔记写完,突然发现博客园里的所有图片都显示不了,通过外链打开,发现报错:

{"error":"no such domain"}

一直用的是七牛云的图床,赶紧登陆个人产品下的对象存储,之前bucket里的图片都还在,但是一直提示:

5402 获取bucket域名失败

而且也下载不了,上网Google了一下,说是七牛云测试域名要回收,新申请的测试域名也只有30天有效期,如果想继续使用的话,需要绑定域名,还得是备案过的,很是麻烦。于是想着还是换了吧,实在没心思再去折腾域名备案。

 

解决思路:

一. 下载七牛云上的图片到本地;

二. 利用GitHub做图床;

三. 更新博客中的图片链接。

 

具体步骤:

一. 下载图片到本地

七牛云上之前的bucket里的图片已经没办法下载了,点击下载链接没有反应。不过还好,我们可以曲线救国,在七牛云里新建一个存储空间,然后把之前的图片复制到新存储空间里,就可以手动下载图片了。当然啦,七牛云提供了工具qshell,让我们能批量copy和download对象。

1. 下载qshell,解压到文件目录下,并把这个目录放置于系统环境变量里;

2. 修改qshell_windows_x64.exe为qshell.exe(以windows 64位为例);

3. windows下用cmd命令窗口,执行命令添加账号(AK/SK在七牛云的 个人中心->密钥管理 里查看):

 qshell account [<AccessKey> <SecretKey> <BucketName1>]

4. 导出bucket里的文件信息:

qshell listbucket BucketName1 > file.txt

5. 提取第一列的文件名称,linux下可以用awk命令,windows下可以用其它文字编辑工具或excel提取下:

awk "{print $1}" file.txt > file.txt

6. 批量复制文件到之前新建的bucket里:

qshell batchcopy BucketName1 BucketName2 -i file.txt

7. 利用qdownload批量下载文件:

a)编写一个qdownload.conf的配置文件,写法见说明

{
"dest_dir" : "D:\\Program\\qshell\\image",
"bucket" : "kplayer2",
"prefix" : "",
"suffixes" : "",
"cdn_domain" : "http://xxxxxxx.bkt.clouddn.com",
"referer" : "",
"log_file" : "download.log",
"log_level" : "info",
"log_rotate" : 1,
"log_stdout" : false
}

b)执行命令,查看下载文件和日志:

qshell qdownload qdownload.conf

 

二. 利用GitHub做图床

文件下载到本地后,可以找新的图床了,如果选用腾讯COS的话可以参考这篇文章

如果有GitHub账号的话,直接就用GitHub做图床也很方便,连接已经不像多年前那样不稳定,速度也不会太慢,基本能满足个人Blog需求。

  新建repository -> 新建issue -> 起个标题,上传或拖延图片进去,自动生成URL 

关于GitHub做图床的高级用法,可以参考这篇文章

 

三. 更新博客图片链接

如果是服务器上的博客就好办多了,直接用写个脚本替换就好。但是博客园上的文章,就不太清楚如何批量替换了,好在文章和图片不多,我就手工更新了一下,如果有图片错误的欢迎指出,或者如果有好的批量更新方法,也欢迎提供。

posted @ 2018-12-03 22:52  KPlayer  阅读(2319)  评论(0编辑  收藏  举报