被迫给博客图片搬家:从 Gitee 到 Cloudflare R2

有一个悲剧的消息:昨天,我的博客图片存储方案出问题了。

我一直是把博客图片直接上传到 Gitee 仓库,再通过 EdgeOne Pages 克隆仓库来部署网站。之前测试速度还不错,我也挺喜欢这种简单直接的方式。但时间一长,问题来了——博客里的照片实在太多,上百张,还有各种封面图。

昨天我提交了一张照片,部署到 EdgeOne Pages 时提示部署失败。查看原因,是克隆失败。查了一下,可能是仓库太大,克隆不下来。今天又遇到类似情况,仓库没办法克隆。去 Gitee 后台一看,已经 500 多兆了。

仓库实在有点太大了。没办法,只能想办法用图床或者对象存储了。

说实话,我本人一直不喜欢用图床,更喜欢把网站图片放在自己的数据里、自己的本地仓库里。我不想把图片放到图床上,但这次真的没办法了,只能妥协。

国内对象存储,速度很快,但我有点怕

我先看了一圈国内的对象存储,主要挑了腾讯云和七牛云,也看了国外的 Cloudflare R2。最后,我选择了 Cloudflare R2。

国内对象存储我之前也用过,优点很明显:国内节点,访问速度特别快,而且比较好用。但缺点也让我很犹豫。

第一个缺点就是容易被刷量。一旦被刷,我可能就要收到巨额账单了。现在我用 EdgeOne Pages,还没上对象存储,后台都能看到有人在刷我的量。一天流量大得不正常,带宽峰值也很夸张,总流量更不用说。我不想细说这个事情,但确实让我有点怕。

第二个问题是自定义域名。国内对象存储想绑定自定义域名,通常需要备案,否则只能用平台自带的域名。我不太喜欢这种形式,也觉得不太方便。

为什么最后选了 Cloudflare R2

最后我选了 Cloudflare R2,原因有几个。

第一,它有免费额度:10G 存储,外网下行流量免费,A 类、B 类操作也有免费额度。对于我这种个人博客来说,基本够用了。

第二,它不用备案,可以自己绑定自定义域名,只需要把域名接入 Cloudflare 就好。

第三,不用担心被刷量。因为刷的主要是下行带宽,而 R2 的下行流量不计费。当然,操作次数还是有免费额度的,但至少不会因为被人刷流量就产生吓人的账单。

Cloudflare R2 也有一个缺点:它不是默认开通的。注册 Cloudflare 之后,还需要用一张银行卡才能激活。有些银行卡没办法激活,恰好我手上这张可以,所以也算幸运,正好用上了。

用 AI 写了个双备份后台

现在我用 AI 写了一个可视化后台。之前也说过,我用 AI 写过一个博客后台,但因为是自己写的,缺什么功能就得自己再补什么功能。

昨天用 AI 写了好久,最终做出来一个支持 Gitee 和 Cloudflare R2 双备份的图片存储方法。既可以把图片存在 Gitee,也可以转存到 Cloudflare R2 存储桶。它们俩可以互相搬家,也可以选择把图片直接上传到 Cloudflare R2。

现在后台已经设置好了:新上传的图片都上传到 Cloudflare R2 存储桶,以前的照片先不搬家,继续放在 Gitee 就行。当然,未来也考虑删除原仓库里的照片,因为文件实在太大了。

上一篇文章和这一篇文章,已经用上存储桶里的链接了。我觉得非常方便,也很幸运。感谢 Cloudflare 能免费提供这样的服务。

10 个 G 的存储空间,免费额度也足够我使用了。如果日后再不够用,付点钱我也是可以接受的,毕竟也不是特别贵。就算是 20 个 G,也花不了多少钱,毕竟流量费是免费的,也不用操作特别多次数,所以还是很划算的。

速度嘛,先用用看

至于测试速度,我也测了一下。跟国内对象存储相比,可能比不了国内的速度。但因为我把存储桶的地域放在了新加坡,也就是亚太地区,速度还是很快的。我个人还是比较满意的。

现在就这样吧,先用用看。

折腾完这一圈,我最大的感受是:有些坚持,在现实面前还是得让步。但好在,这次让步之后,结果还不错。后面用一段时间,我再来汇报体验。

评论