把博客图床从七牛云迁移到腾讯云
1 迁移原因
七牛云测试域名回收,导致博客里的图片全都看不了了,打开对应的图片链接会显示:{"error":"no such domain"}
测试域名指的是你的存储空间建立完成后会有的以clouddn. com
结尾的域名,这个域名以前是可以一直使用的,但是现在每个测试域名每日限总流量 10GB,而且自创建起 30 个自然日后系统会自动回收,仅供测试使用。我的测试域名已经被回收了,所以博客图片全都也没了。具体公告见这里
解决方法有两个,一种是把测试域名换成自己本网站的域名,比如我的域名huanyouchen.github.io
,但是这种方法需要备案,备案更加麻烦。。。另一种方法是把七牛云里的图片迁移到别的图床上,然后更换本站图片的链接到对应图床上,这样更简单点,本文记录下把图片从七牛云迁移到腾讯云的过程。
2 过程思路
首先需要把图片从七牛云里面移出来,如果是在该网站存储空间的内容管理下操作,通过获取图片外部链接再下载下来,这个是行不通的,一方面网站图片可能非常多,另外由于该测试域名被回收,在预览和复制外链时候根本没有反应。
好在七牛云提供了命令行工具qshell
,使用qshell来下载,具体过程如下。
2.1 博客图片从七牛云下载到本地
qshell使用方法介绍:命令行工具qshell
2.1.1
我原来的存储空间(名字是huanyouchen)已经被回收,需要新建一个存储空间(命名为backup
),这个新存储空间backup有30天可用的测试域名:pnhfj36jj.bkt.clouddn.com
(这个域名每个人的都不一样),利用qshell把旧空间中的图片拷贝到新空间banckup中。 具体步骤如下:
下载qshell,下载地址
添加权限,根据自己系统选择相应qshell版本,我的是Ubuntu 18.04,64位系统,
1
2
3sudo chmod +x qshell_linux_x64
ln -s qshell_linux_x64 qshell设置秘钥:
1 | ./qshell account 你的AccessKey 你的SecretKey 你的name(幻悠尘) |
AccessKey 和 SecretKey可以通过七牛云的个人面板-》秘钥管理中查看, name是你的账户名字,这个可以通过命令./qshell user ls
来查看
- 把旧空间里的文件迁移到新空间:
1 | #获取空间huanyouchen里面的所有文件列表,并保存到文件list.txt中: |
如果这个过程出错的话可以查看listbucket的参考文档和batchcopy的参考文档
2.1.2
这个操作完成后,就可以在七牛云的backup空间中看到存储过的网站图片了,下面把这些图片利用qshell提供的qdownload
命令把新空间backup中的图片下载到本地。
查看qdownload的参考文档, 注意到:该功能默认需要计费,如果希望享受10G的免费流量,请自行设置cdn_domain参数,如不设置,需支付源站流量费用,无法减免。
因此,首先在当前目录下(qshell所在目录)新建qdownload 功能需要的配置文件batch_download.conf
,在配置文件中设置cdn_domain这个参数。 过程如下
1 | # 新建配置文件 |
配置文件的内容如下:
1 | { |
其中dest_dir是新建的本地保存图片文件夹,bucket是新的存储空间名字,cdn_domain是新存储空间banckup对外访问域名,这个可以在backup存储空间的空间概览中看到,以clouddn.com结尾的。(在默认不指定cdn_domain的情况下,会从存储源站下载资源,这部分下载产生的流量会生成存储源站下载流量的计费。)其余参数含义可以看参考文档。
在设置好配置文件后,执行qdownload命令:
1 | ./qshell qdownload batch_download.conf |
下载完成后,可以在本地img_backup文件夹中看到博客中的图片,第一步完成。
2.2 从本地上传到腾讯云
登录腾讯云-》对象存储-》创建存储桶,然后把本地img_backup文件夹中的博客图片全都上传到存储桶中,在权限管理中设置存储通访问权限,在基础配置中查看访问域名。
2.3 修改本站文件内容里的图片链接
在本站以前的Markdown文件中,文章内容里的七牛云的图片链接形式为:http://p7u7ikgiw.bkt.clouddn.com/xxxx.png
而腾讯云的图片链接形式为:https://huanyouchen-1252081928.cos.ap-shanghai.myqcloud.com/xxx.png
所以需要把hexo的_post
文件夹下所有md格式的文章中的图片链接从七牛云更换为腾讯云的链接形式,
1 | # 进入目录 |
更换完成后,再用hexo s
查看博客内的图片,应该能正常显示了。
若还有不能显示的,可以手动打开相应文章的md文件,用编辑器的替换功能把http://p7u7ikgiw.bkt.clouddn.com全都替换为https://huanyouchen-1252081928.cos.ap-shanghai.myqcloud.com
使用hexo g d
部署后,图床迁移完成。