记一次对象储存服务迁移过程

aliyun

对象储存服务是现在很多团队都在使用的技术,当然还有很多写博客的人拿对象储存来当图床,这样一来把图片上传到对象储存服务上,自己的网站插入图片的时候直接外链过去,不用耗费自己服务器的流量,节省了资源也加快了网站图片的访问速度,简直是一举两得。

我从2016年发现七牛云的对象储存服务可以用作图床使用,所以之后在MikeTech创作的所有的文章配图都是传到七牛云上再链接到网站上的,两年下来性能很好,再加上每月七牛云10G的免费流量,也没花钱,唯一的不好就是七牛的免费版对象储存不支持SSL,所以 MikeTech 两年来都没有变成全站https,不过 who cares,大家来我的网站只是看文章,又没有什么用户数据之类的,不存在安全问题,所以我也没有去管这边的问题,就这样两年过去了。

起因

前几天突然收到这样一封邮件,显示我的七牛对象储存测试域名要在七天之内被回收了,七牛的这个测试域名是我从2016年开始使用他们服务的时候就开始使用,MikeTech在2016年之后所有文章的配图URL都是这个地址。

突然告知我测试域名要被回收了,的确是一个很严重的问题,这个域名被回收之后,MikeTech在2016年之后的文章配图就都无法访问了。

那么看这样子七牛云肯定是用不了了,那也不能就让我两年文章的配图打水漂啊。还有以后的配图往什么地方存的问题,最后决定以后开始使用阿里云的对象储存服务。

那么首先要处理的就是先把旧的数据迁移上去了。我的大概思路是先把七牛的所有图片按照以前的结构下载下来,然后再按照原封不动的结构传到阿里OSS上,之后在网站的数据库中运行一个指令替换旧的测试域名为阿里给的域名就大功告成了。

 

下载七牛云的文件

对象储存一般都是服务器自动化操作的,像我这种人工想手动下载所有文件的人不多,当然我也没有那么傻一张一张的下载。看了一下七牛的开发文档: https://developer.qiniu.com/kodo/sdk/1242/python

照着他们的示例代码稍微改了一下写了一个Python脚本:

运行脚本之后就可以把所有的图片下载下来啦:

看了一下的确所有的图片都被下载到了本地,那么到此整个迁移已经完成了一半了

 

上传所有文件到阿里云OSS

阿里云OSS和七牛的操作方法差不多,我创立了一个华东2区的Bucket。他们家服务给的开发文档也很详细,直接把文档上的代码复制下来随便改改就能把所有文件传上去了:

 

数据库替换URL

那么接下来就没什么工作了,连上网站的数据库,找到存放博客的表,执行替换语句

update wp_posts set post_content = replace(post_content,"http://o9oxwxci5.bkt.clouddn.com/","https://miketech-pic.oss-cn-shanghai.aliyuncs.com/")

显示操作成功:

 

经过上面一系列操作,MikeTech的图床已经从七牛云切换到了阿里云并且旧的数据也一并迁移了过去。

为了简化以后的写作流程,我还写了一个Python脚本来帮我自动压缩上传图片,以后写文章的时候把图片拽到黑框里面点下回车,会到编辑器里面直接粘贴图片就过来了,不要太爽

 

七牛云在过去的两年真的给我带来了很多的便利,也省了很多的钱,不过突然回收测试域名的这个行为的确很过分,要是我是个什么都不懂得小白岂不是得500多张图片一张一张下载然后再传到新的地方,希望大家以后谨慎选择七牛云的服务,指不定要出什么新的幺蛾子呢。

 

 

打赏

Leave a Reply

Your email address will not be published. Required fields are marked *