搭建个人博客或网站,图片和静态资源的托管是个绕不开的话题。传统的对象存储服务商(如七牛云、又拍云等)通常会提供一部分免费额度,看起来非常诱人。但用过的人都知道,这背后隐藏着一个巨大的风险——流量盗刷。
一旦你的图片链接被恶意盗用,或者遭遇攻击,瞬间产生的天价流量账单足以让人心惊肉跳。这种情况在网络上屡见不鲜,让人用起来总感觉不太踏实。
那么,在这个充满“套路”的互联网世界里,有没有一款真正让人安心的、不怕被刷的对象存储服务呢?
答案是肯定的,而且提供者还是那位大家熟悉的“互联网慈善家”——Cloudflare,它的名字叫 R2 对象存储。
Cloudflare R2 的核心优势在于其打破了行业惯例:免收出口流量费。这意味着,无论你的图片被访问多少次,下载了多少数据量,Cloudflare 都不会向你收取一分钱的流量费用。
它与 Amazon S3 兼容,可以无缝对接各种现有工具。这彻底解决了传统图床的三大痛点:
更令人心动的是,R2 提供了一个相当慷慨的免费套餐,对于个人用户来说,几乎等同于永久免费。以下是 R2 的核心定价与免费额度详情:
| 计费维度 | 免费额度 | 超出部分费用 | 形象化理解 |
|---|---|---|---|
| 存储空间 | 10 GB / 月 | 每 GB $0.015 美元 | 足以存放约 5 万张压缩后的博客配图 |
| A类操作 (写) | 100 万次 / 月 | 每百万次 $4.50 美元 | 每天可上传/覆盖 3.3 万次,个人用户完全够用 |
| B类操作 (读) | 1000 万次 / 月 | 每百万次 $0.36 美元 | 每天可被读取 33 万次,费用极低 |
| 出口流量 | 完全免费 | $0 | 这是 R2 最核心的优势,彻底杜绝流量盗刷风险 |
看到这里,可能有人会抬杠:“那读请求次数被刷爆怎么办?” 仔细看表格,超出 1000 万次后,每百万次的费用仅为 0.36 美元(约合人民币2.6元)。这个成本极低,更重要的是,试问谁会花费巨大成本去攻击一个几乎不产生收益的请求次数呢?
当然,如果你追求极致的安心,我们会在后面的步骤中介绍如何通过 Cloudflare 强大的规则系统,进一步为你的图床加上“多重保险”。
下面,我们将一步步带你完成从创建到防护的全过程。
第一步:创建 R2 存储桶
在弹出的窗口中配置:
存储桶名称:取一个全球唯一的名称,例如 my-blog-images-2026。
位置:可以选择 亚太地区,对于国内访问速度稍有优势。
默认存储类:保持默认的 标准 即可。
第二步:配置自定义域名(可选但推荐)
为了让你的图片链接更美观、更可控,建议绑定一个自己的域名。
yourdomain.com)已经托管在 Cloudflare。img.yourdomain.com。
第三步:生成 API 密钥
为了使用 PicGo 等桌面工具管理图片,你需要生成 API 凭证。
在 R2 对象存储 的主界面,点击右侧的 管理 API 令牌。
点击 创建 API 令牌。
权限选择 管理员读和写(如果只为单个桶使用,也可选择“对象读和写”并指定桶名,更安全)。
创建成功后,务必妥善保存显示的 访问密钥 ID 和 机密访问密钥。这些信息稍后需要填入图床管理软件中。
尽管 R2 本身已极大降低了被刷的风险,但通过以下三步设置,可以让你真正做到高枕无忧。
1. 设置缓存规则,降低源站压力
通过设置缓存策略,让 Cloudflare 的边缘节点尽可能地响应图片请求,进一步减少对 R2 的直接读取次数。
进入你的域名管理面板。
找到 规则 -> 页面规则,点击 创建页面规则。
URL:输入你的图床域名,例如 https://img.yourdomain.com/*。
缓存级别:设置为 缓存所有内容。
边缘缓存 TTL:设置为 1个月(或根据你图片更新频率调整)。
浏览器缓存 TTL:设置为 1天。
点击 保存。
2. 设置速率限制,拦截恶意请求
通过限制单个 IP 的访问频率,可以有效防止有人使用脚本大量抓取你的图片。
进入域名管理面板,找到 安全性 -> 安全规则 -> 速率限制规则。
点击 创建规则。
规则名称:随意,如 “img-rate-limit”。
如果请求匹配…:选择 字段 为 URL 路径,运算符 为 包含,值 为 /。
当速率超过…:设置为 100,时间周期 为 10秒钟。(这个值可根据你网站的访问量调整,避免误伤正常用户)
然后采取措施…:选择 阻止。
点击 部署。
3. 设置防盗链,拒绝外部引用
如果你不希望其他网站直接引用你的图片链接,可以启用防盗链。
主机名 等于 img.yourdomain.com。引用来源 不等于 www.yourblog.com(替换为你自己的博客域名)。引用来源 不等于 yourblog.com(无 www 的版本)。And 条件:引用来源 不为空,以避免直接访问链接也被阻止。
这里还可以用到我们之前搭建的 CloudFlare-ImgBed 图床程序,搭建教程具体文章可以看:免费!用HuggingFace搭建100G超大图床+网盘,大文件随便传,无需实名!
服务器部署时默认添加了 Cloudflare R2 存储方式,以下步骤仅针对 Cloudflare 部署方式:
在项目设置中绑定 R2 存储桶:
img_r2
在管理后台配置:
由于 R2 兼容 S3 API,几乎所有支持 S3 协议的工具都能直接使用它,这极大地丰富了你的选择:
至此,一个安全、免费、几乎不怕被刷的个人专属图床就搭建完成了。现在,你可以放心地为你的博客或网站上传图片,再也不用为流量账单而提心吊胆了。
!评论内容需包含中文