R2的免费套餐

  1. Free (免费)

    • 无需支付费用。
  2. Storage (存储)

    • 每月提供 10 GB 的免费存储容量。
    • 超过 10 GB 后可能会按每 GB 的价格收费。
  3. Class A Operations (A类操作)

    • 包含更高成本的操作,例如数据的上传(PUT)、元数据更新等。
    • 每月限制为 100 万次免费请求。
  4. Class B Operations (B类操作)

    • 包含低成本的操作,例如读取数据(GET)或查询操作。
    • 每月限制为 1000 万次免费请求。
  5. Egress (出口流量)

    • 数据传输到互联网的出口带宽。
    • 免费提供一定量,描述中提到的“免费 1”,可能是指:

      • 1 TB/月(如 Cloudflare R2 的免费套餐)。
      • 1 GB/月(如果是小规模测试服务)。

参考官方文档:https://developers.cloudflare.com/r2/pricing/#free-tier

R2的收费标准

以下是 Cloudflare R2 的收费标准,已换算成人民币(假设汇率为 1 美元 = 7.2 人民币):

服务类别费用 (美元)费用 (人民币)
存储 (每 GB 每月)$0.015¥0.110
A 类操作 (每百万次请求)$4.50¥32.40
B 类操作 (每百万次请求)$0.36¥2.59
数据检索(处理)$0.00¥0.00
出口 (每月前 1 TB 免费)免费免费

可以看到R2的收费换算成人民币也是非常便宜的价格 做了以下操作 能尽最大程度减少开支 也能给大善人减少一些成本
如果是商用选择R2也要比国内的对象存储便宜太多太多

如何避免超额收费?

在 Cloudflare R2 免费套餐中,Class A 操作Class B 操作 是针对不同类型 API 请求的分类,分别表示高成本和低成本的操作。这种分类是为了区分存储服务中对计算资源消耗不同的请求类型。

Class A 操作

这些操作主要涉及数据写入或元数据管理,通常被认为是高成本操作:

  • PUT:上传对象到 R2 存储桶。
  • COPY:复制对象到另一个存储桶或路径。
  • POST:用于创建资源。
  • LIST:列出存储桶中的对象。
  • DELETE:删除存储桶中的对象。

例子

  • 上传一个文件到 R2:1 次 Class A 操作。
  • 删除 10 个文件:10 次 Class A 操作。

Class B 操作

这些操作主要涉及读取或下载数据,通常被认为是低成本操作:

  • GET:从存储桶中读取对象。
  • HEAD:检查对象元数据(例如大小或是否存在)。
  • SELECT:对对象进行查询。

例子

  • 下载一个文件:1 次 Class B 操作。
  • 检查 5 个文件的元数据:5 次 Class B 操作。
  1. 监控使用情况

    • 定期查看 Cloudflare 仪表盘,跟踪当前的操作次数和存储用量。
    • 使用 Cloudflare 的 API 自动化查询配额使用情况,设置警报提醒接近配额时发送通知。
  2. 优化操作

    • 减少 Class A 操作

      • 合并小文件:将多个小文件合并为一个大文件,减少 PUT 请求次数。
      • 批量操作:一次上传多个文件,而不是逐个上传。
      • 避免频繁 LIST 操作:本地缓存对象列表,减少对存储桶的目录查询。
    • 减少 Class B 操作

      • 启用 Cloudflare 的缓存:将经常访问的文件放入缓存,避免每次都从 R2 获取。
      • 压缩对象:下载大文件时使用压缩格式(如 gzip 或 brotli),减少请求次数和带宽。
  3. 使用缓存和 CDN

    • 将 R2 存储与 Cloudflare 的 CDN 配合使用,通过 CDN 缓存降低直接访问 R2 的频率。
    • 配置适当的缓存时间(TTL),确保静态资源尽可能从缓存中提供,而不是频繁读取 R2。
  4. 限制用户访问

    • 如果 R2 数据通过公开 API 提供访问,限制 API 请求频率。
    • 为 API 设置配额或使用速率限制。
  5. 清理无用数据

    • 定期删除不再需要的文件,避免因无用数据浪费 Class A 操作。

将 R2 存储与 Cloudflare 的 CDN 配合使用

Cloudflare R2 存储Cloudflare 的 CDN 配合使用,可以提高数据的访问速度、减少请求到 R2 的频率,同时优化带宽利用率。

自定义域介绍

当自定义域连接到您的存储桶时,您的存储桶的内容将可以通过该域公开访问。连接的网站还可以受益于 Cloudflare 功能,如机器人管理、访问和缓存。

R2.dev 子域介绍

启用 r2.dev 访问时,Internet 上的任何人都可以使用公共 r2.dev URL 查看此存储桶中的对象。但在使用时有速率限制,因此,不建议用于生产。此外,访问和缓存等 Cloudflare 功能无法再使用。

长话短说:
直接去存储桶的设置里的公开访问里绑定好自定义域就行了 直接就能让r2跟cf的cdn配合使用
经过反复测试 都没有消耗b类操作的次数 dev子域保持关闭就好了 不然被人逮住 就能通过疯狂请求消耗你的b类操作的免费额度

设置缓存规则

完成以上操作后 直接去Cache Rules里添加R2的自定义域名 然后把边缘TTL和浏览器TTL设置为1年时间
然后去itdog里测试 查看请求头 出现:
Cache-Control: max-age=31536000
即完成了缓存设置 这样谁来了也刷不崩你的10G免费额度

总结

我本来是不玩这个的 白嫖是有代价的 但是CloudFlare玩得起 正常使用不滥用其实是靠谱信得过的 我虽不混论坛 但是经常当游客查看别人的帖子 看到好多人用这个居然也能被刷扣费 我对那些恶意刷别人oss的😧🖊️ 非常鄙视 你也就欺负一下新人了
同时我对R2存储桶拿来做个人图床表示认可 10G完全够用了 希望大家都能自己学一下 少去依赖别人 r2应该是又靠谱又便宜的方案了 哪怕是超过免费额度 给cf交钱其实都是划算的 这方面腾讯云阿里云我也不指望你来学一下了 国内带宽什么价格 我也表示理解
r2的速度我也测了 仅次于我国内CDN和我反代优选IP下的图床速度 总之是非常靠谱的 搭配Picgo Piclist 网上也有非常丰富的教程 我就不多说什么了

我自己是不用r2的 因为我已经有了低成本更快的方案 可能我会把我图床压缩一份 传输到r2做备份 但暂时没有这个需求 只是看到大家都在玩 我也来了兴致 相信这篇文章可以帮助到刚接触的新人 不要问我为什么要专门写一篇文章来强调 如何避免被刷流量 因为我也被刷过...刷了10T流量 气人的是 我一分钱损失都没有 我云服务器包年的啊兄弟 你刷完了下个月又有了

最后修改:2024 年 12 月 30 日
如果觉得我的文章对你有用,请随意赞赏