无需服务器、免流量费、10GB存储空间,个人图床的终极解决方案
在当今内容创作时代,一个稳定高效的图床是每个博主和开发者的刚需。Cloudflare 作为“赛博菩萨”,其 R2 对象存储服务提供了10GB免费存储+免出口流量费的良心套餐,结合 Pages 的静态托管能力,可实现真正的零成本图床搭建。本文将详细介绍基于开源项目 CloudFlare-ImgBed 的部署全流程(2025年最新版)。
🔍 一、项目核心优势
CloudFlare-ImgBed(GitHub 项目地址)是一个开箱即用的图床解决方案,其技术架构如下:
组件 | 技术方案 | 免费额度 (Cloudflare) |
---|---|---|
前端 | Vue.js 响应式设计 | - |
后端 API | Cloudflare Workers 无服务器架构 | 每日 10 万次请求 |
存储 | R2 对象存储 (S3 兼容) | 10GB 存储 + 100 万次写操作/月 |
数据库 | Cloudflare KV (元数据存储) | 1000 万次读操作/月 |
托管 | Cloudflare Pages | 无限带宽 + 自定义域名 |
亮点功能:
- 支持网页拖拽上传 & API 接口调用
- 图片压缩(非破坏性优化)
- 链接格式一键复制(Markdown/BBCode/HTML)
- 密码保护和访客上传控制
- 多级目录管理
⚙️ 二、部署前准备
- 基础账户:
- GitHub 账号(用于 Fork 项目)(注册入口)
Cloudflare 账号(注册入口)
以上注册方法很简单,只要有个邮箱即可。
- 域名要求:
- 一个自定义域名(需托管到 Cloudflare DNS)
- 可选二级域名(如
img.yourdomain.com
) - 支付验证:
- 国际信用卡(Visa/MasterCard)或 PayPal 账户
- 仅用于激活 R2 服务(10GB 内不会扣费)
🚀 三、详细部署步骤(2025最新界面)
步骤 1:创建 R2 存储桶
- 进入 Cloudflare 控制台 → R2对象存储 → 创建存储桶
- 参数配置:
- 名称:
imgbed
(自定义) - 位置:
亚太地区
(延迟更低) - 存储类:
标准
(免费额度适用) - 开启公共访问:
- 桶设置 → 公共访问 URL → 点击 启用
步骤 2:部署 Pages 项目
- Fork 项目:
- 访问 MarSeventh/CloudFlare-ImgBed
- 点击右上角
Fork
到你的 GitHub 仓库 - 创建 Pages 服务:
- Cloudflare 控制台 → (计算)Workers →Workers 和 Pages → 创建应用 → Pages
- 连接 GitHub → 选择 Fork 的仓库
- 构建设置:
配置项 | 值 | 说明 |
---|---|---|
项目名称 | cloudflare-imgbed(或自定义) | 项目标识符 |
生产分支 | main | 生产环境分支 |
构建命令 | npm install | 重要:v2.0 新构建命令 |
构建输出目录 | / | 保持默认 |
- 点击
部署
,大概1-2分钟左右部署成功。 - 绑定自定义域名:
- Pages 项目 → 自定义域 → 添加域名(如
img.yourdomain.com
) - 注意:国内用户必须绑定自定义域名,避免
*.pages.dev
无法访问
步骤 3:关键配置绑定
- 创建 KV 数据库:
- 存储 和 数据库 → KV → 页面右上角 Create Instance
- 名称填写
img_url
(必须一致)→ 点击创建
- 绑定到 Pages:
- Pages 项目(刚才创建的项目) → 设置 → 绑定 → 添加
- 变量名:
img_url
→ 选择刚创建的 KV - 变量名:
img_r2
→ 选择 R2 存储桶 - 点击保存
- 重新部署 → 部署 → 点击 生成 下的:查看详细信息 → 右上角 管理部署 → 重试部署
设置访问密码(防滥用):
这里也可以到图床的管理页面进行设置:进入图床管理页面以后,点击系统设置 → 安全设置。
- Pages 项目 → 设置 → 变量和机密 → 添加:
AUTH_CODE
:自定义上传密码(字母+数字)BASIC_USER
:管理员账号BASIC_PASS
:管理员密码以上设置完成后,浏览器中输入刚才绑定好的域名访问图床网站。
重要说明:
进入网站后到系统设置内的 安全设置 中,设置好后台用户名和密码以及图床访问密码。
上传设置: 修改为CloudFlareR2 公开访问链接:https://绑定的域名
网页设置: 默认URL前缀设置为绑定的域名+/(https://img.xxx.xxx/)
🔐 四、高级安全优化
- 防盗链设置:
- Cloudflare 控制台 → 安全 → WAF → 自定义规则
- 添加规则:
字段:主机名 → 等于 → img.yourdomain.com
AND 引用方 → 不等于 → www.yourblog.com
操作:阻止
- 防刷流量策略:
- 速率限制:
安全 → WAF → 速率限制规则
- 规则:
10秒内超过100次请求 → 拦截
- 缓存优化:
缓存 → 页面规则 → 创建规则
- URL:
img.yourdomain.com/*
- 边缘缓存 TTL:
1个月
- 国内访问加速:
- DNS 设置中启用 中国区域优化
- 添加
A记录
指向优选 IP(如172.67.213.27
)
🖼️ 五、使用图床的三种方式
- 网页端上传:
- 访问你的图床域名(如
img.yourdomain.com
) - 输入
AUTH_CODE
后拖拽上传 - 支持批量传图 + 目录管理
- API 接口调用:
curl --location --request POST 'https://img.yourdomain.com/upload' \
--header 'Authorization: Bearer YOUR_AUTH_CODE' \
--form 'file=@"image.jpg"'
- 搭配工具使用:
- PicGo:安装 S3 插件,配置:
- Endpoint:
https://img.yourdomain.com
- AccessKey/SecretKey:从 R2 API 令牌获取
- Alist:挂载 R2 作为存储策略
💡 六、常见问题排错
- 部署失败 → 检查构建命令是否为
npm install
- 图片无法访问 → 确认 R2 桶的公共访问已启用
- 国内加载慢 → 更换域名 DNS 解析至优选 IP
- API 上传 403 → 验证 AUTH_CODE 和 R2 绑定变量名
⚠️ 重要提示:每月操作次数限制(100万次写入/1000万次读取)对个人完全够用,但建议开启安全防护避免恶意刷量!
🌈 结语
Cloudflare R2 + Pages 的组合真正实现了零成本、免运维、永久可用的图床方案。通过本文的保姆级教程,30分钟内即可完成部署。无论是个人博客配图,还是项目静态资源托管,这套方案都能提供企业级的可靠服务。
扩展阅读: