网站的图片和静态资源使用 CDN 加速是常见的操作,并且很多许多对象存储的服务商都提供了「免费」的额度,看起来很爽,但是万一被刷之后就很不爽了:
那么有没有一款不怕被刷的对象存储呢?答案是有的,还是你熟悉的赛博善人 CLoudFlare 的 R2对象存储。
R2 是 Cloudflare 推出的对象存储服务,主打零出口费用(也就是免流量费)和与 Amazon S3 兼容的 API,适合存储大量数据且需频繁访问的场景,完美解决传统图床的痛点:
更重要的是并且 R2 的免费额度非常的大,以下是R2的核心定价和免费额度:
罗列了个表格:
类别 | 内容 | 免费额度 | 超出部分费用 |
---|---|---|---|
💾 存储 | 存储空间 | 10GB/月 免费 可存5万张2MB图片 | 每增加 1GB 收费 $0.015 美元(约 $15/TB) |
🔄 A 类操作 | 上传、列出 | 100 万次/月 免费 每天3.3万次 | 每增加 100 万次 收费 $4.50 美元 |
🔁 B 类操作 | 下载、读取 | 1000 万次/月 免费 每天33万次 | 每增加 1000 万次 收费 $0.36 美元 |
⏬ 出口流量 | 访问数据时的流量 | 全免 | 无任何费用 |
出口费用全免!当然有些人还是会说下载、读取次数被刷怎么办?1000万次才收费0.36美元,真的会有人去刷 CF 的 R2 吗?
为了防止“被刷”(抬杠),我们稍后介绍下强制缓存、速率控制的设置方法(进一步规避被刷风险)。
下面我们就一步一步教大家如何开启 CloudFlare R2 服务:
官方网址:https://www.cloudflare.com/zh-cn/
打开并注册 CF 账户(不是,你不会还没有CF账户吧?😁)进入「R2 对象存储」:
添加支付信息,这里需要一张外币卡 或者 Paypal。
完成之后,就可以「创建存储桶」
点击「创建存储桶」:
这样就创建完成了!这时候就可以直接在页面上上传和删除等操作。
添加你的图床域名,当然主域名要先托管到CF,也可以按需开启 R2.dev 子域名:
按需设置CORS 策略等:
按照下面的路径进行操作,账户API、用户API均可:
「R2对象存储」-「API」-「管理API令牌」-「创建API令牌」
其中权限选择「管理员读和写」,对象读和写也可以,不过要指定桶。
创建好后会出现API密钥等信息,请保存好,以后一些插件、软件都会用到
虽然 R2 基本不怕被刷,但是如果你还有这方面的担忧,可以通过下面三步操作基本杜绝这方面的问题:
设置这个主要是为了进一步防止被刷下载次数(虽然也基本没人去刷CF的R2),先点进去域名:
然后选择「规则」-「页面规则」-「创建页面规则」:
其中:
这样缓存规则就设置完毕了!
还通过设置速率限制防止恶意请求:
选择「安全性」-「WAF」-「速率限制规则」-「创建规则」:
其中:
这里重点是【当速率超过...】这个选项,推荐100甚至更多一点,不建议填写太低,很容易误伤;意思是同一个 IP 10 秒内请求超过多少张图片,就触发操作(按照你站点图片情况设置)
这个可以按需添加,主要是防止别的网站盗用你的图床的图片,在别的网址引用图床链接就会提示错误,但是直接请求的方式就还是能打开!
选择「安全性」-「WAF」-「自定义规则」:
CloudFlare 的 R2 是兼容 Amazon S3 对象存储的,所以有很多配合的软件可以使用,例如: