起因
事情的起因是我上周末用COS+Jellyfin搭建流媒体平台的时候没注意流量消耗,结果导致同样用来放这个博客资源的储存桶的下行流量激增 ,短短的两天时间快300G的流量就这么白白的没了,为了及时止损,我选择放弃COS直接将资源放在本地服务器并沿用typecho
最原始的文件上传的方式。目前的迁移工作已经差不多完成了,今天下了班没事儿干还给网站多加了几个功能。谨以此文记录一下这两天网站的发生的变动以及数据转移的流程。
更新数据库
由于数据源从COS的储存桶的地址变成的typecho的本地储存地址,所以除了转移资源还得将数据库内相关的链接进行更新,通过昨天的折腾和研究,我发现主要有两个条目受制:
blog_content
中的text
: 博客内容以及上传的文件信息,里面有我们写文章时插入的图片/文件链接
以及blog_field
中的str_value
: 文章的自定义字段,由于里面包含文章主图
,所以也得更新
对于内容的更新,我们需要把内容中的原链接:
https://cdn.cirno.me/web/[文件位置]
改为:
https://cirno.me/usr/uplaods/[文件位置]
替换以上内容直接执行REPLACE
就行,执行完后数据库的blog_field
就能完全恢复了,blog_content
也能成功恢复一半,为了恢复另一半我们还得替换以下内容:
blog_content
中 文件类型 的text
a:5:{s:4:"name";s:27:"image-20220307213138125.png";s:4:"path";s:30:"/web/2022/03/08/1646713047.png";s:4:"size";i:10869;s:4:"type";s:3:"png";s:4:"mime";s:9:"image/png";}
为以下:
a:5:{s:4:"name";s:27:"image-20220307213138125.png";s:4:"path";s:38:"/usr/uploads/2022/03/08/1646713047.png";s:4:"size";i:10869;s:4:"type";s:3:"png";s:4:"mime";s:9:"image/png";}
也就是:s:38:"/usr/uploads/2022/03/08/1646713047.png"
这一段,这里的链接是文件的相对路径,s:38
指的是链接的长度为38
。
幸运的是,得益于typecho重命名上传文件的特性,我发现文件的链接长度都是固定的,所以这里的替换其实也只用REPALCE
就行,以下是处理数据库执行的命令
UPDATE `blog_contents` SET `text` = REPLACE(`text`,'https://cdn.cirno.me','https://cirno.me');
UPDATE `blog_contents` SET `text` = REPLACE(`text`,'?imageMogr2/format/webp','');
UPDATE `blog_contents` SET `text` = REPLACE(`text`,'/web','/usr/uploads');
UPDATE `blog_contents` SET `text` = REPLACE(`text`,'s:30','s:38');
UPDATE `blog_fields` SET `str_value` = REPLACE(`str_value`,'?imageMogr2/format/webp','');
UPDATE `blog_fields` SET `str_value` = REPLACE(`str_value`,'/web','/usr/uploads');
最后把更新后的数据库上传到博客空间,不出意外的话就大功告成力!
恢复后
博客恢复完后我开始意识到安全建设的重要性,所以对网站做了以下几点更改:
- 开启
防火墙
:我之前居然一直没开?!! nginx
设置流量限制以及设置重要文件的访问权限- 开启
fail2ban
服务防暴力刷流量 - 开启
cloudfare
控流以及网站加速
如果还有啥安全方面的建议恳请大佬们赐教!
网站小更新
这几周空闲时间给网站折腾了几个小功能,文章最后再提一嘴介绍一小下
音乐播放功能:
插件详见Credit页面
藏得挺深,点开网站右下角的设置
就能看到了
点击一次开始播放,开始播放后会出现两个图标,点左边那个按钮暂停,右边切歌
主页右边的阿夸:
还写过一篇相关文章:在博客上养一只可爱的阿夸
主页头图美化:
增加了粒子特效以及暗夜模式logo和粒子发光
COS 一般是搭配 CDN 使用的;老实说: COS 本身提供的限制选项太有限,不如搭配 CDN,这样仅仅需要购买 CDN 到 COS 回源流量 + CDN 流量,CDN 流量的流量包可比 COS 下行流量便宜多了,而且 CDN 的控制功能也比 COS 丰富,可以设置流量流出到一定的程度,直接下线 CDN ,访问全部 404,等等诸如此类。如果你的 300 G 购买成 CDN 流量,也不过 60 元罢了。
nb!我之前还纳闷儿为啥会同时存在cdn和cos这俩玩意儿。等我后面对cos的心理阴影没那么多了再这么搞试试