省流:使用量在最低计量单位内的话,每月需要 4.88 美元。
之前本站的背景图片功能没有默认启用,只有很少的人会加载背景图片。但是 Cloudflare 的免费 CDN 的缓存时间不够久,尤其是这些很少被访问的图片(包括早期文章里的图片),可能在数个小时内就会被移出 CDN 缓存,下次访问就需要从源站获取。
所以我尝试启用了 Cloudflare 的缓存储备(Cache Reserve)功能。它是基于 R2 存储的上层缓存,处于源服务器和 CDN 之间,如果 CDN 里没有命中缓存,会在缓存储备里寻找,没有的话才会去源服务器加载。所以这里保存的文件应该是访问量比较少的冷门文件,有效期是 30 天,每次访问都会刷新有效期。
没想到我才用了 7 天就到了账单日。看来账单是固定每月 7 号结算,被我赶上了。
收费标准是这样的:
注意下方的 Note,即使使用量非常低,也会按照一个单位进行计费。
比如存储费用是 $0.015 / GB / 月,我的使用量不到 100 MB,也是按 1 GB 计算的。
两种操作次数都是按百万次计费的,但我的情况是不到 100 次和不到 10 万次:
即便如此也按百万次计费了,主要是 A 类操作很贵,一个单位需要 $4.5。
我的账单其实就是三个单位费用的综合,4.88 美元:
所以数据量太少的话,使用缓存储备功能很不划算。
现在我已经停用了缓存储备,并把背景图片改为默认启用,这样请求频率大大增加了,只用免费 CDN 就可以有很高的命中率了。
相比于收费的缓存储备,其实也可以考虑白嫖免费的 R2 存储,有 10 GB 空间,百万次操作内免费,无须出口流量,对于本文这样的情况完全够用了。
虽然 R2 的服务器节点没有 CDN 多,不过可以在 R2 存储桶设置中绑定自定义域名(如 img.yourdomain.com),并把域名通过 Cloudflare 托管,这样 R2 里的文件也可以走 CDN。
即便不走 CDN,R2 的请求耗时也远低于我的源服务器。要知道我的源服务器加载一张几百 KB 的图片,耗时基本上都会超过 1.5 秒。只是这种方法需要修改前端所使用的图片的域名。