脑子一抽写了一个自己刷自己R2存储计费的逻辑

文章字数:618

突然收了一个Cloudflare的9美元的账单,虽然价格不算很高,但是一时没想到是哪一个计费项。

查看账单详情,发现来源于R2存储。

DescriptionQtyUnitpriceAmount
R2 Storage Class A Operations (First 1M included)
May 9 – Jun 8, 2025
1,121,440$4.50
per
1,000,000
1,121,440$9.00

也就是R2存储的A操作计费次数达到了1,121,4400,一个月一百多万次的调用,而这还没包括免费的那一百万次。

第一反应是之前上传了一批判题数据导致的,不过想来一千多题产生的一万多个文件,应该不至于产生百万次的写操作。然后就翻了翻实现逻辑,感觉没什么线索。

最后一通找,发现是DidaOJ网站的Cdn仓库调用次数过多了,判题数据的仓库反倒没有太多。于是就想到了,之前做个一个状态更新逻辑。

之前为了节省服务器资源,把服务器状态上报的数据写入了R2存储,每个节点3秒一次上报自己的状态,于是一个月直接把额度写满……

之前选择对象存储服务器的时候,一直在关注流量费用,于是选择了出口流量免费的R2存储。但是今天一看,R2存储的A操作百万次收费4.5美元(每月免费100万),而阿里云100万次收费1元(每月免费500万)……只能说,收费策略的制定还是有设计的。

也是吸取了一次教训,评估方案的时候还是得认真考虑全面,各个方面的事项都得仔细看看。

至于站点状态,还是老老实实的用数据库存取了。由于目前硬件资源有限,Redis与MongoDB放在同一台机器上,主要用来解决一些计算密集型数据的缓存。后面要是Redis的资源能解放出来,这种状态使用Redis来存会更合理一些。

该内容采用 CC BY-NC-SA 4.0 许可协议。

如果对您有帮助或存在意见建议,欢迎在下方评论交流。

加载中...