算算时间有一段时间没有更新博客了,一来是年底了事比较多,另一方面主要是我的博客出现了一点问题:博客上的图片无法显示了。后来排查了一下原因,发现原来是七牛网的临时域名过期了!这篇博文写给遇到同样问题的朋友们,提供一下找回图片的方法。
七牛网临时域名
七牛网是我一位师姐在我刚开始做博客时推荐给我的,当时觉得挺方便就使用了,一直用了大半年都没有问题。直到七牛网分配给我的域名过期了,图片无法上传到七牛网后,我才知道这原来是个临时域名。虽然过期了,但之前上传的图片还是可以显示了,所以我一直也没有处理。直到最近,临时域名直接被回收了,我之前上传的图片也访问不了了,我才意识到不处理不行了。
我进入控制台的存储界面,直接给我报错:
[5402] 获取 bucket 域名失败
这是因为临时域名被回收,所以存储的图片找不到路径,所以报错了。我在控制台前前后后找了半天没有找到任何下载我之前上传图片的功能,由于域名被回收,我也无法直接去访问下载。
一种解决方法是去绑定域名,但是绑定的域名需要备案,麻烦无比,所以我查了七牛网官方的API后,终于找回了我之前上传的图片。
图片找回
qshell
qshell是利用七牛文档上公开的API实现的一个方便开发者测试和使用七牛API服务的命令行工具。该工具设计和开发的主要目的就是帮助开发者快速解决问题。我们需要了解的是,我们之前上传的图片并没有丢失,它们一直存在bucket空间中,只是我们无法直接访问。而qshell这个工具能让我们直接访问bucket空间,从而获取我们之前上传的图片。这里贴一下工具的下载链接:qshell。
使用流程
(1). 首先,在工具上绑定用户,输入命令行:
qshell account ak sk name
其中,ak和sk是你个人的AccessKey和SecretKey,在你的个人中心中可以查看,而name可以随便写,只是做标记:
(2). 然后,导出你的图片列表:
qshell listbucket 原bucket名 -o list.txt
原bucket名是指你原来存储图片空间的名字,可以在存储空间中查看:
(3). 使用Awk获取list结果的第一列:
cat list.txt | awk '{print $1}' >list_final.txt
//如果windiws无法执行这条命令,安装一个cmder就可以执行了,或直接编辑txt
并在七牛网中新建一个空间做准备:
(4). 然后,将原空间中图片做一个迁移:
qshell batchcopy 原bucket名 新bucket名 -i list_final.txt
这样原来空间的图片都迁移到新空间了,由于新空间有临时域名,所以图片可以被访问了。
(5). 直接用qshell工具下载所有图片到本地。
qshell qdownload newfilelist.txt
newfilelist.txt中是配置文件,可以参考一下我的配置信息进行修改:
{
"dest_dir" : "D:/xxx/xxx/xxx/blogPicture/",
"bucket" : "blog",
"cdn_domain" : "pjo4oyz5p.bkt.clouddn.com",
"referer" : "http://www.example.com"
}
小彩蛋:配置不可访问列目录
按照上面的方法,你的图片就可以全部找回了。但是思来想去,我还是得找一个地方去存储我的图片,于是乎咬了咬牙买了一台云服务器。
在配置云服务器时出了一点问题,我想要配置不可访问列目录,然而我找不到httpd.conf。在网上查了一下,原来云服务器的操作系统是ubuntu,而部署的web服务器是apache,所以没有httpd.conf,只有apache2.conf。
find / -name apache2.conf //查找apache2.conf位置
在其中添加配置:
<Directory "/var/www/html/">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
保存后重启apache服务器:
/etc/init.d/apache2 restart
然后就配置完成啦: