Cloudflare R2:零成本享受云储服务,全球加速访问文件库
Cloudflare R2 作为新兴对象存储服务,以其零出口流量费和 10GB 免费存储空间的优势,成为个人图床的绝佳选择。
一、为什么选择 Cloudflare R2 做图床?
Cloudflare R2 是 Cloudflare 推出的对象存储服务,与传统云存储相比具有独特优势:
- ✅ 零出口流量费用:图片被访问时不收取任何流量费
- 🌍 全球加速网络:利用 Cloudflare 全球 275 个节点实现快速访问
- 🆓 免费额度充足:每月免费提供:
- 10GB 存储空间(约可存 5 万张 2MB 图片)
- 100 万次上传操作(A 类操作)
- 1000 万次图片读取(B 类操作)
- 💰 超低超额费用:即使超出免费额度,每 1000 万次读取仅需 $0.36
实测网络速度:白天最高可达 50MB/s,晚上约 4-5MB/s(不同地区有差异)。
二、准备工作
在开始搭建前,需要准备好以下资源:
- Cloudflare 账号:访问 Cloudflare 官网 注册免费账号
- 支付方式:信用卡或 PayPal(仅用于验证,免费额度内不会被扣费)
- 域名一个:可以是免费域名,或任意已购买的域名(无需备案),将域名托管到 CF
三、创建与配置 R2 存储桶
步骤 1:创建存储桶
- 登录 Cloudflare 控制台
- 左侧菜单选择 R2 对象存储,需要添加付款方式
- 点击 创建存储桶
- 填写存储桶名称(例如
image) - 地区选择 亚太地区(APAC)
- 默认存储类选择 标准
- 点击 创建存储桶
- 开启公开访问:点击 设置 → 公共开发 URL 栏点击 启用 → 确认对话框中输入
"allow"→ 点击允许 - 创建完成!直接在页面的对象 TAB 上传和删除文件等操作
打开文件的 URL 能访问的话,就不需要配置域名,直接使用即可;但为了哪天被墙,建议用自定义域名绑定,看上去也更简洁美观。
步骤 2:绑定自定义域名
- 进入刚创建的存储桶
- 点击 设置 标签页
- 找到 自定义域 二级菜单
- 点击 添加,输入自定义域名(例如
pic.xxxx.xxx),点击继续 - 点击 连接域
- 等待初始化,状态 = 活动 即成功
步骤 3:创建 S3 客户端 API 访问密钥
- 左侧菜单选择 R2 对象存储,点击概述
- 点击 管理 API 令牌
- 点击 创建 Account API 令牌
- 配置参数:
- 令牌名称:
PicListToken - 权限:对象读和写 — 允许读取、写入和列出特定存储桶中的对象
- 指定存储桶:应用于此帐户中的所有存储桶(包括新创建的存储桶)
- TTL:永久
- 令牌名称:
- 点击底部按钮 创建 Account API 令牌
- 在记事本中保存
<访问密钥 ID><机密访问密钥>值,点击完成后无法再次查看
四、配置 PicList 上传图片
PicList 是一款高效的云存储和图床平台管理工具,基于 PicGo 深度二次开发,提供完整的图床功能和全面的云存储管理能力。
下载安装 PicList 后,进入 图床设置 → 选择 Amazon S3(因 R2 兼容 S3 API),填写配置信息:
| PicList 字段名 | Cloudflare R2 对应值 |
|---|---|
| 设定 AccessKeyId | 访问密钥 ID (Access Key ID) |
| 设定 SecretAccessKey | 机密访问密钥 (Secret Access Key) |
| 设定 Bucket | 创建存储桶时填写的名称 |
| 设定上传路径 | {year}/{month}/{fullName} |
| 设定 Region | apac |
| 自定义节点 | 复制节点 URL:R2 对象存储 → 概述 → API → 将 R2 与 API 配合使用 → 复制 URL |
| 自定义域名 | pic.xxxx.xxx |
五、高级优化配置
1. 设置缓存规则(减少 B 类操作)
在 Cloudflare 控制台选择你的域名 → 规则 → 页面规则 → 创建页面规则:
- URL:
https://pic.xxxxx.xxx/* - 边缘缓存 TTL:1 个月(长期不更新的图片)
- 浏览器缓存 TTL:1 天
- 缓存级别:缓存所有内容
2. 设置速率限制(防止恶意请求)
进入 安全性 → WAF → 速率限制规则 → 创建规则:
- 规则名称:
image-rate-limit - 字段:URL 路径,运算符:包含,值:
/ - 当速率超过:100 请求 / 10 秒
- 然后采取措施:阻止
3. 防盗链设置(可选)
进入 安全性 → WAF → 自定义规则 → 创建规则:
- 规则名称:
hotlink-protection - 字段:主机名,等于
pic.xxxxx.xxx - 添加条件:引用方,不等于
www.xxxxx.xxx - 然后采取措施:阻止