03-09 32人
引言:图床被刷的噩梦,有解了!
搭建个人博客或网站,图片和静态资源的托管是个绕不开的话题。传统的对象存储服务商(如七牛云、又拍云等)通常会提供一部分免费额度,看起来非常诱人。但用过的人都知道,这背后隐藏着一个巨大的风险——流量盗刷。
一旦你的图片链接被恶意盗用,或者遭遇攻击,瞬间产生的天价流量账单足以让人心惊肉跳。这种情况在网络上屡见不鲜,让人用起来总感觉不太踏实。
那么,在这个充满“套路”的互联网世界里,有没有一款真正让人安心的、不怕被刷的对象存储服务呢?
答案是肯定的,而且提供者还是那位大家熟悉的“互联网慈善家”——Cloudflare,它的名字叫 R2 对象存储。

CLoudFlare R2 对象存储
Cloudflare R2 的核心优势在于其打破了行业惯例:免收出口流量费。这意味着,无论你的图片被访问多少次,下载了多少数据量,Cloudflare 都不会向你收取一分钱的流量费用。
它与 Amazon S3 兼容,可以无缝对接各种现有工具。这彻底解决了传统图床的三大痛点:
- 流量无忧:不再担心因意外爆红或恶意攻击而产生巨额流量账单。
- 速度尚可:依托 Cloudflare 庞大的全球网络,虽然在国内的速度不如专业CDN,但实测白天下载速度可达 50MB/s,足以满足绝大多数个人站长的需求。
- 生态完善:完美兼容 S3 标准 API,可以轻松接入市面上几乎所有的主流图床管理工具。
更令人心动的是,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 图床之旅
下面,我们将一步步带你完成从创建到防护的全过程。
第一步:创建 R2 存储桶
- 访问 Cloudflare 官网 并登录你的账户。如果你还没有,注册一个非常简单。
- 在控制台左侧菜单栏找到 R2 对象存储 并进入。
- 首次使用需要绑定支付方式:根据提示,添加一张支持国际支付的信用卡(Visa/Mastercard)或 PayPal 账户。这是为了验证身份,只要你的使用量在免费额度内,就不会产生任何扣费。
- 绑定成功后,点击 创建存储桶 按钮。
在弹出的窗口中配置:
存储桶名称:取一个全球唯一的名称,例如
my-blog-images-2026。位置:可以选择 亚太地区,对于国内访问速度稍有优势。
默认存储类:保持默认的 标准 即可。
- 点击 创建存储桶,一个属于你的云端存储空间就诞生了!现在,你已经可以直接在网页端上传和下载文件了。

第二步:配置自定义域名(可选但推荐)
为了让你的图片链接更美观、更可控,建议绑定一个自己的域名。
- 确保你的主域名(例如
yourdomain.com)已经托管在 Cloudflare。 - 在 R2 存储桶的详情页,找到 设置 选项卡。
- 在 自定义域名 区域,输入你的图床专用子域名,例如
img.yourdomain.com。 - 点击 连接域名,Cloudflare 会自动为你添加 DNS 记录并启用 HTTPS。

第三步:生成 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-hotlink-protection”。
- 如果传入请求匹配…:
- 第一个条件:
主机名等于img.yourdomain.com。 - 点击 And 添加第二个条件:
引用来源不等于www.yourblog.com(替换为你自己的博客域名)。 - 为了更严谨,可以再添加一个 And 条件:
引用来源不等于yourblog.com(无 www 的版本)。 - (可选)添加一个
And条件:引用来源不为空,以避免直接访问链接也被阻止。
- 第一个条件:
- 然后采取措施…:选择 阻止。
- 点击 部署。

CloudFlare-ImgBed 配置 R2 渠道
这里还可以用到我们之前搭建的 CloudFlare-ImgBed 图床程序,搭建教程具体文章可以看:免费!用HuggingFace搭建100G超大图床+网盘,大文件随便传,无需实名!
服务器部署时默认添加了 Cloudflare R2 存储方式,以下步骤仅针对 Cloudflare 部署方式:
在项目设置中绑定 R2 存储桶:
- 选择 “设置” → “绑定”
- 添加 “R2 存储桶”
- 变量名称:
img_r2 - R2 存储桶:选择已创建的存储桶

在管理后台配置:
- 进入 “系统设置” → “上传设置”
- 配置 R2 渠道参数
- 如需图像审查,填入 R2 公开访问链接
配套工具:解锁 R2 的强大生态
由于 R2 兼容 S3 API,几乎所有支持 S3 协议的工具都能直接使用它,这极大地丰富了你的选择:
- 桌面端管理:PicGo —— 配合 S3 插件,实现一键上传、自动复制链接。
- 网盘/目录程序:Alist —— 可以将 R2 挂载为网盘,实现在线预览和分享。
- 自建图床系统:兰空图床、简单图床 等均支持 S3 存储。
- WordPress:安装支持 S3 的插件(如 WP Offload Media),即可将媒体库自动同步到 R2。
至此,一个安全、免费、几乎不怕被刷的个人专属图床就搭建完成了。现在,你可以放心地为你的博客或网站上传图片,再也不用为流量账单而提心吊胆了。
欢迎留言