博客图床又拍云成本飙升,如何优化
最近我的博客图床服务又拍云费用飙升,花了些时间分析优化,目前成本已经降至0.2元/天左右,免费额度够用。
一、异常飙升的又拍云费用
我使用又拍云作为博客的图床服务,因加入他们的联盟计划,每年有67元的代金券。在2023年之前,代金券足够覆盖我一年的存储和流量费用。
然而,从2023年下半年开始,每隔一段时间会收到欠费通知,恰逢彼时我开始恋爱并经常发布旅行日记,我推测是大量旅行照片导致费用增长,因此我直接充值,未深入研究。
到今年,费用继续攀升,情况进一步加剧了,上图是我的又拍云充值记录:
- 3月1日充值100元,5月12日用完,共73天
- 5月12日充值100元,6月19日用完,共38天
按照这个节奏,我一年需要1000元左右的云存储费用。但我的博客日均仅50-100访客,并且今年以来博客流量并没有显著增长,但云存储费用却像坐火箭似的节节攀升,十分诡异。
所以,6月19日,我只充值了10元,保证网站短期仍然可以访问,同时着手调查此事。
二、分析原因
首先,我查看了统计中的热门文件,哪些文件被访问的最多。
如上图显示,2024年和2023年的4个文件当天流量能达到五六个G,分别是:
排名第1的文件产生6.204G流量,是乌镇的「坑车」停车位中的这张图——难道是这家公司因我的吐槽而进行报复吗!!
第2名和第4名均是五一常州行中山介咖啡馆的图:
第3名是绝版书《奇特的一生》、录制播客、线下脱口秀中门票照片:
如果查看6月18日的热门文章,top4一模一样。
这些文件怎么可能被访问1000次/天,显然属于非正常流量。
接着,我进一步下载又拍云访问日志明细,查看这些文件的访问明细信息,访问明细中的IP地址与热门IP能对应的上。然而,这个IP地址究竟是谁,为何爬取我的数据,我无从得知。我怀疑过是不是又拍云为了创收而进行的操作,但没有证据。
三、降本优化
我主要从两个方面进行降本优化。
第一,在又拍云的云存储后台添加访问控制,包括:
- 打开IP黑名单,把这些IP拉黑
- 打开Referer防盗链,使用白名单并禁止Referer为空,从访问日志看到,这些非正常流量均没有Referer
- 打开User-Agent防盗链,使用黑名单并禁止User-Agent为空
- 打开IP访问限制,一分钟访问超过N次,直接禁止IP
限制访问后RSS阅读器也抓取不到图片,影响RSS阅读体验,因此我索性关闭了RSS全文输出,改为摘要。
第二,将博客的图片压缩为webp格式,并设置最大边长不超过1200px,几M的照片均被压缩为几十到几百KB,压缩率能达到90%,大幅减轻流量负担。经过压缩,阅读体验未受明显影响。
我使用Obsidian写博客,使用Image Converter插件压缩图片,设置好之后,能够在复制粘贴图片时自动完成压缩,对于已经的文章,也可以一键执行图片压缩替换,操作便捷。
下面是我的日账单,6月21日完成优化后,费用显著下降。同时又重新申请了联盟代金券,按平均0.2元/天的费用,一年67元代金券,基本够用,相当于免费使用了。
事实上以我现在博客流量规模,每年支付不超过100元也能接受,所以2023年和2024年每年充值也没有犹豫,实在是2025年费用增长过于离谱了。
以前也纠结图床,后来发现其实没多少图片,直接放自己服务器
图片不多,也不总是迁移博客,本地是很方便的
自从换掉服务器,用了手搓的静态博客,图床都不用了,直接把图片转换为webp格式,然后用base64硬编码到HTML里,哪怕迁移博客,都不用管图片链接的问题,一个HTML就是一篇文章,一劳永逸。
base64这个太绝了吧,思路被打开了。
我目前也是又拍云,最近打算迁移到cloudflare上,最主要还是CF会免费提供基础的防护功能,不用担心DDos,之前被人攻击过一次,花了我一顿火锅的钱😭国内的WAF都要钱,没有基础免费版可以用
我继续观望中,CF也是我的选项之一。
我目前全放本地了,后续体积大起来再看情况用不用图床
这个「后续」估计不会到来。以现在服务储存空间来说,普通博客不会不够用。
赛博vercel+CF,每年除了域名之外没有别的,也不用担心被刷流量。
哈哈,最低成本的方案。
我与又拍云是20年接触的,刚开始因为活动参加的多,送了一次1000元的优惠券,以为一天2毛钱,压根用不完,直到被别有用心的人恶意刷流量。一晚受到约 50 ~ 300GB 的恶意流量,67.5元一日的账单让我蒙圈,立刻把后台能开的防护全开了。
用了快一年,收到又拍云联盟代金券申请规则更改通知的邮件,不会自动续约了,充了几十块钱过渡后决定不能对云储存有过多的依赖,刚好轻量云走进了市场,带宽不再是小水管。本着长痛不如短痛,把云存储上的所有文件拉取到了本地,随后服务全部本地化。
4 年后,光有 CDN 服务的几乎没流量的静默博客遭到了超出想象的刷流量,一看账单二十多,直接就决定连 CDN 服务都不用了,写个日记也没有营收还要买单,顶不住。
最近,完成了一次搬家迁移,所有服务本地化,采用双节点+CF的思路,年费用降低到30元,目前已经两个月,不在乎稳不稳定也不追求一秒就能打开的速度了。
我就卡在嫌麻烦这一步,没迁移到本地。
还有个顾虑导致我没迁移到本地,如果后续改变博客托管方式,比如想用hugo之类的静态博客,图片处理又不方便。图床就不会有这个问题。
虽然部署在本地,图床依旧可以远程上传,上传后后台会自动转换为webp格式
我早就不用国内的云服务作为图床了,阿里云oss、又拍云都用过,有段时间发布的图片文章比较多,流量费用1天1块钱地跑,看得我很焦虑。后来改成cloudflare的R2对象存储做图床,每个月不限流量,因为之前的图床域名是结构化的设计,我只需要把阿里云oss图床的图片打包下载到本地,再借助一个国外付费软件软件的试用版,把图片传到cloudflare,买个.xyz的纯数字域名10年就几十块钱,把文章配图的链接批量替换前缀就行。现在一点也不担心流量问题,速度也挺快。(couldflare的R2开通需要绑定信用卡,不过不会扣款,都是免费的)
我如果迁移,也可以这么操作。
R2的cdn,国内速度你觉得如何。
我访问你网站倒是觉得还好。
我一直没用CDN,博客静态文件储存在阿里云OSS,图床在R2。
如果单纯访问R2管理后台,会感觉很慢,但改造成图床后,搭配upic图床客户端,每次上传图片不用登录后台,引用的链接访问速度挺快的,用R2一年多了,一直很稳定。
用我这方法一年省100块钱。用来续费域名不好嘛,哈哈
哈哈哈恋爱费钱。
目前用阿里云的200M不限流量,超过200G以上可能会限带宽,所以也没用图床cdn之类。
我想过把图片都放回typecho的目录,但一想就觉得麻烦,暂时搞定了费用问题,就不折腾了。
果然,RSS已经看不到图片了,只能多点一次来博客看图片。
哈哈,没办法,权宜之计。
同用的又拍云。
一般都是被刷流了,我也经常关注,目前也设置了一些防盗链手段,但是感觉真要刷咱们也没有啥办法,上次被刷过一次,我直接关站一个星期求饶。
如果被针对了,我也只能关站了。太复杂的技术搞不定。