type
status
date
slug
summary
tags
category
icon
password
菜单级别
Place
Verification
Owner
FlareDrive-R2 是基于 Cloudflare R2 + Pages 构建的在线网盘系统,支持文件上传/下载/分享、多用户权限管理、目录级访问控制和静态文件托管。完全免费,无需购买服务器。
📌 本项目修改自 Cloudflare-R2-oss,实现了更加美观的前端页面。如果有功能方面的需求,请在上游仓库提出。
🌟 项目特性
- 完全免费:基于 Cloudflare R2 免费额度(每月 10GB 存储 + 10GB 流量)
- 文件管理:支持文件上传、下载、在线预览、分享
- 权限控制:多用户权限管理,目录级访问控制
- 静态托管:可作为静态文件托管服务
- 美观界面:优化的前端页面设计
🚀 快速部署
前置要求
- Cloudflare 账号
- 已开通 R2 服务(免费计划即可)
- GitHub 账号
部署步骤
步骤 1:创建 R2 存储桶
- 前往 Cloudflare 控制台,进入 R2 Object Storage
- 点击「创建存储桶」,输入存储桶名称(建议全小写,如
my-drive)
- 创建完成后,进入存储桶的「设置」页面
- 在「公共访问」区域,点击「允许访问」启用公开访问
- 复制「公共存储桶 URL」,格式类似:
https://pub-xxxxxxxx.r2.dev
⚠️ 安全提示:仅启用「公开访问」,不要开启「公开写入」权限,否则任何人都可以向你的存储桶上传文件。
步骤 2:部署 Pages 应用
- Fork 项目仓库:前往 FlareDrive-R2 并 Fork 到你的 GitHub 账号
- 创建 Pages 项目:前往 Cloudflare 控制台
- 重要:默认会显示创建 Worker 的界面,不要点击上方的选项
- 向下滚动到页面底部,找到「Looking to deploy Pages? Get started」
- 点击「Get started」进入 Pages 创建流程

- 连接 Git 仓库:
- 点击「连接到 Git」
- 选择你刚才 Fork 的仓库
- 保持默认的构建设置
- 点击「保存并部署」
💡 提示:第一次构建完成后页面可能无法正常显示,这是正常现象,需要继续配置环境变量。
步骤 3:配置环境变量
- 在 Pages 项目页面,进入「设置」→「环境变量」
- 添加以下环境变量(点击「添加变量」):
变量名 | 示例值 | 必填 | 说明 |
PUBURL | ✅ 必填 | R2 公共存储桶地址 | |
admin:123456 | * | ✅ 必填 | 管理员账号,格式为 用户名:密码 |
GUEST | public/ | ❌ 可选 | 游客写入的默认目录 |
user1:123456 | user1/,shared/ | ❌ 可选 | 普通用户及其可写入目录,支持多个目录,格式一致 |
环境变量配置说明:
- PUBURL:必须配置为步骤 1 中获取的 R2 公共存储桶 URL
- 管理员账号:变量名格式为
用户名:密码,值设置为*表示拥有所有权限
- 普通用户:变量名格式为
用户名:密码,值为该用户可访问的目录列表(逗号分隔,以/结尾)
- GUEST:可选,设置游客可写入的默认目录
权限配置技巧:
- 使用
*作为变量值表示拥有所有目录权限
- 目录名必须以
/结尾
- 多个目录用逗号分隔,不要在开头或结尾添加多余逗号
- 错误示例:
,dir1/,会导致权限配置错误
⚠️ 重要提示:请勿开启 R2 存储桶的公开读写权限!否则你的存储资源可能会被恶意刷爆。
步骤 4:绑定 R2 存储桶
- 在 Pages 项目设置页面,点击「函数」→「R2 存储桶绑定」
- 点击「添加绑定」
- 变量名填写:
BUCKET(必须是这个名称)
- 选择你在步骤 1 创建的 R2 存储桶
- 点击「保存」
步骤 5:重新部署
- 进入 Pages 项目的「部署」标签页
- 点击右上角的「创建部署」
- 选择「生产环境」并确认部署
- 等待部署完成后,访问 Pages 提供的域名即可使用
⚙️ 自定义配置
绑定自定义域名
- 在 Pages 项目设置中,进入「自定义域」
- 点击「设置自定义域」
- 输入你的域名(如
drive.example.com)
- 按照提示在 DNS 服务商处添加 CNAME 记录
- 等待 SSL 证书自动配置完成
修改前端样式
如需自定义界面,可以修改以下文件后重新提交到 Git:
1. 背景图片
编辑文件:
assets/App.vue2. 页脚链接
编辑文件:
assets/Footer.vue提交修改后,Cloudflare Pages 会自动触发重新部署。
🔧 故障排查
问题 1:页面无法访问或显示空白
可能原因:
- R2 存储桶未绑定或绑定变量名错误
- 环境变量
PUBURL配置错误
解决方法:
- 检查 R2 存储桶绑定,确保变量名为
BUCKET
- 检查
PUBURL是否正确,格式应为https://pub-xxx.r2.dev
- 重新部署项目
问题 2:文件上传失败
可能原因:
- 用户没有目标目录的写入权限
- 目录权限配置错误
解决方法:
- 检查环境变量中的用户目录配置
- 确认目录名以
/结尾
- 检查目录列表中没有多余的逗号
问题 3:样式或功能更新后未生效
解决方法:
- 清除浏览器缓存(Ctrl + Shift + Delete)
- 确认修改已提交到 GitHub 仓库
- 在 Pages 控制台手动触发重新部署
- 使用无痕模式测试
问题 4:登录后仍无法上传
可能原因:
- 环境变量格式错误
- 用户目录配置缺失
解决方法:
- 检查用户名密码格式:
username:password
- 检查用户目录变量名格式:
username_DIRS
- 确保至少配置了一个可写目录
📚 相关资源
- 项目地址:FlareDrive-R2 GitHub
- 上游项目:Cloudflare-R2-oss
- Cloudflare R2 文档:官方文档
- Cloudflare Pages 文档:官方文档
💡 使用建议
- 安全性:
- 使用强密码作为管理员密码
- 定期更换密码
- 不要将敏感文件存储在游客可访问的目录
- 成本控制:
- 免费计划每月 10GB 存储 + 10GB 流量
- 超出部分按量付费,注意监控用量
- 建议设置用量告警
- 性能优化:
- R2 存储桶选择离用户较近的区域
- 大文件建议启用分片上传
- 使用自定义域名可以更好的管理缓存
通过 FlareDrive-R2,你可以利用 Cloudflare 的免费服务快速搭建一个功能完善的个人网盘系统,支持多用户、权限控制、文件分享等功能,完全无需购买服务器或付费存储服务。
- 作者:Orz
- 链接:https://blog.1567890.xyz/technology/flaredrive-r2-free-cloud-storage
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
