随着博客文章点击率增长,文章中配插图或动图,使之付费图床逐渐难以承受压力。高昂的存储成本和带宽消耗让许多人望而却步,寻找免费或低成本的图床替代方案成为迫切需求。

An image to describe post

究竟什么是图床

很多小伙伴搞不清楚为什么要费劲巴拉弄个什么图床,究竟有什么用?

以 Obsidian 为例,它是一个文本编辑器,当你在文章中插入图片,它通过本地链接形式存在,存放在附件中。如果你写的文章只给自己看,不发任何在线平台,那么,无须图床,不必往下读了。

一旦文章需要发布在线平台,比如微信公众号和知乎,那么文章复制到各个发布平台,未上传图床的文章配图就会丢失。这时你可以通过后台手动上传本地图片,重新插入文章即可。

倘若图片很多,同时需要考虑放置到内容的前后顺序,你需要几步?

先把所有文章配图以次序重命名,批量上传到后台,手动挨个在文章内容的段前或段后插入图片。

有时一不小心,位置放错还得重来,想想就烦。

有了图床,以上问题迎刃而解。

Obsidian 排好文章,一键上传图床,本地链接替换外部链接,相当于把本地图片上传到云端服务器并给你配发了一个外网访问链接,返回时图片自动批量替换为外链。

常规文章配图的在线图片使用场景分两种。通常一些自主搭建博客平台不会再将图片转换成其他格式或链接,他们只对文章进行渲染,图片使用依然搭载图床服务器,当你储存服务器的图片被删除时,博客文章中的插图就会丢失。

因此不建议找一些不靠谱的免费第三方图床,一旦他们关闭服务器,你所有使用该服务器图床的文章配图都会丢失。

另外一种方式,当你将文章复制各个平台,比如公众号和知乎,它们会自动将在线图片转换成他们服务器图片,相当于做了一次批量上传并替换的操作。

这样做的原因,是为了保护原创内容版权和安全,对图片做了相应的安全识别,也就是对图片采用了防盗链处理。

当你复制微信公众号文章作他用时,文章配图丢失,并提示:此图片来自微信公众平台未经允许不可引用。

从另外一方面讲,如果直接渲染引用自己服务器图片链接,当服务器关闭,或不小心删除图片时,文章配图就会丢失。

相当于从 Obsidian 中复制过去的文章图片,一经平台发布,图片链接已经从自己云端服务器转换为各自平台服务器了。

这种方式有利有弊,好的地方,如果你使用付费图床,不用考虑访问量而被收费问题,只要平台不倒,图片不会丢失。弊端就是,不自由,转成平台后的图片,相当于加了防盗水印,你无法用在其他地方。

如果你使用本地上传图片的方式将文章发布到微信公众号,当将同一篇文章发布到知乎时,由于两个平台的图片存储和链接系统不兼容,你需要再次上传图片。每个平台都有自己的图片存储和管理系统,它们不会共享或自动同步图片。

图床服务的价值所在,它允许你通过一个外链引用图片,从而在多个平台上重复使用同一批图片,避免了重复上传的麻烦。

An image to describe post

关于付费图床问题

因此找一家靠谱的储存图片服务,避免文章在博客或者其他自主搭建平台中因服务器故障而丢失图片就显得尤为必要。

我一直使用腾讯云对象存储COS,配合 PicList 开源图片上传工具,它在PicGo 基础上经过二次深度开发,不仅完整保留 PicGo 所有功能,还增添许多新特征。 例如相册支持同步云端删除文件等。

以往删除一张已上传储存桶的图片,你需要打开云服务后台手动删除,而 PicList 可以在工具相册直接删除,即可同步删除云端图片。对于不喜欢图片冗余的小伙伴来说,这个功能非常实用。

An image to describe post

综上所述,图床是一种服务,它使你能够高效地将包含图片的文章快速发布到多个平台,无需逐一手动上传每张图片。

随着你的博客阅读量提升,付费图床压力越来越大。

腾讯云对象存储收费,正常人也看不懂。反正就一条,你上传要钱,别人浏览和下载也要钱。

从今年的账单,我们不难看出,当文章阅读量越来越大时,图床费用也水涨船高。

我文章配图其实不多,一般三到五张,尽管如此,一个月从10元涨到30元。

相当于,你写文章分享给别人看,还得自己掏钱。

An image to describe post

那么究竟有没有免费又靠谱的图床对象存储服务呢?

被称为“互联网赛博活菩萨”的 cloudflare 并非浪得虚名,其中 R2 就是一款个人使用完全够用的免费图床服务。

An image to describe post

假设上传一张图片1MB ,那么 Cloudflare R2 免费额度一个月可以让你上传一万张图片,并且他人下载和访问几乎免费。

我现已将 cloudflare R2 设置为默认图床,除配置时花了点时间学习,之后一马平川,从付费到免费,流畅过渡。

Cloudflare R2 搭建

我原本想要自己写一个搭建过程,发现其他博主写得已经非常详尽,我按照教程一步步做,几乎没有阻碍。因此具体搭建过程,不再赘述。新手搭建请参考文章底部参考链接。

搭建配置过程中虽然简单,但也遇到一些小问题,如果你遇到与我相似问题,不妨尝试下面的解决方案。

图片能上传却无法正确显示

二级域名可以在创建 Cloudflare R2 时填入,只要是在 Cloudflare 购买的域名,它会自动关联 CHAME 目标。也就说,当你配置 R2 自定义域时,只要填入对应二级域名,Cloudflare 自动帮你创建 CHAME 并且关联到 R2。

其他教程中提及自定义域名,往往先创建好域名,再关联。

An image to describe post

遇到第一个卡点,Cloudflare R2 和 Piclist 配置好之后,图片能正确上传,却无法正确显示,即图片上传到 Cloudflare R2 后台,链接地址却和本地获得的地址不一致。

我发现链接中的 / 变成了 %,导致图片未能正常显示。

在 Piclist 配置中的自定义域名,需要将 https://img.lenband.com 改为 https://img.lenband.com/my-img

my-img 是哪来的?就是 R2创建时存储桶的名称。

An image to describe post

An image to describe post

Tinypng 图片压缩插件

正确配置完图床,顺带手安装了一个 Tinypng 插件,它能够把图片保持清晰的同时压缩体积,原理通过在线 Tinypng API 调用,将上传图片压缩转置。

启动这个插件之后,上传图片时明显卡顿,如果稍微慢点倒也没关系,问题是今天我上传一个 4MB 左右 GIF 时,直接报错。于是我关闭了这个插件。

因为,我找到了另外一个图片优化方案。

WebP Cloud 智能图片优化代理服务

WebP Cloud 可以在几乎不改变画质的情况下大幅缩小图片体积,加快整体站点加载速度,且有智能代理缓存功能。

类似像呼叫转移操作,当你呼叫 cloudflare R2 时,WebP Cloud 帮你中转,中转过程它帮你优化图片。

上传图片 → cloudflare R2 → WebP Cloud 优化图片 → 获得图片

设置简单,将 cloudflare R2 自定义域名,例如:https://img.lenband.com/my-img 填入 WebP Cloud,将代理之后的链接填入 Piclist 配置。

免费用户每天有 2000 免费配额,即能够代理 2000 次图片访问请求,并提供 100M 图片缓存,个人博客使用的话,够用了。

An image to describe post

在我上传本篇文章发现问题,当我使用 WebP Cloud 中转后的图片外链,博客平台完美支持。但复制到国内微信公众号和知乎,图片会丢失。知乎直接报错。

An image to describe post

于是我又将配置改回 Cloudflare R2 自定义域名,即不使用 WebP Cloud 图片优化处理。微信公众号能够识别,知乎依然无法识别。

解决办法:​微信公众号发布之后,使用Chrome插件「同步助手」 → ​知乎。

Cloudflare 免费项目还有很多,比如免费博客搭建,R2图片存储服务,域名重定向,免费 DNS 服务,电子邮件路由服务,以及针对 DDoS 攻击的免费保护。赛博活菩萨之名由此而来。

参考链接

Cloudflare R2 + WebP Cloud + PicGo
https://www.pseudoyu.com/zh/2024/06/30/free_image_hosting_system_using_r2_webp_cloud_and_picgo/

使用cloudflare R2搭建个人图床
https://www.lihuanyu.com/%E8%BF%90%E7%BB%B4/%E4%BD%BF%E7%94%A8cloudflare-R2%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%9B%BE%E5%BA%8A/

利用Cloudflare R2存储搭建博客图床
https://ysicing.me/cloudflare-r2