EdgeStash:基于 Cloudflare R2 的开源私有云盘,密码分享+在线预览

2026-06-11

为什么还需要自己搭云盘?

网盘的选择看似很多:百度网盘限速、阿里云盘改规则、iCloud 空间不够、NAS 又太贵。如果你只是偶尔分享文件给朋友或同事,买个 NAS 显然过头了。

有没有一种方案——不要服务器、不要 VPS、完全靠云服务的免费额度就能跑起来?

有的。靠 Cloudflare 的免费套餐就能做到。

EdgeStash 就是基于这个思路做的开源项目:用 Cloudflare Workers 跑后端逻辑,R2 存文件,KV 存分享链接元数据。整个架构零服务器成本,对于个人和小团队的文件分享需求足够用了。

EdgeStash 是什么

EdgeStash 是一个开源私有云盘项目,GitHub 地址在 hhy-2021/EdgeStash(MIT 许可)。它的核心逻辑全部部署在 Cloudflare 的边缘网络上,你不需要买服务器就能跑起来。

核心功能一览:

功能 说明
多用户系统 管理员可添加授权用户,不是单一管理员模式
密码分享 文件分享链接可以设置密码,保护隐私
下载统计 追踪分享链接的浏览和下载量
在线预览 支持 docx/pdf、图片、视频、音频、文本代码
文件管理 上传、重命名、删除文件和文件夹
管理后台 统计分享数据,管理用户与分享链接
Cloudflare 全球网络 利用边缘节点加速访问

和其他方案的对比

在 EdgeStash 之前,也有其他基于 Cloudflare R2 的云盘方案,但各有侧重:

特性 EdgeStash Cloudreve + R2 CF-R2-oss
部署复杂度 低(单个 Worker) 中(需服务器/容器) 低(Pages 部署)
多用户 单管理员
密码分享 需插件
在线预览 docx/pdf、图片、视频、音频等 多种格式
大文件支持 受限于 Workers 约 100MB 支持分片上传 约 300MB
是否需要服务器 不需要 需要 VPS 不需要

EdgeStash 的独特卖点是密码分享 + 在线预览,这两个功能在同类轻量方案中很少同时提供。如果你需要多用户协作和文件分享控制,它比 CF-R2-oss 更全面;如果你已有 VPS 且需要更复杂的功能,Cloudreve 是更成熟的选择。

前置条件

你需要准备的东西很少:

  1. 一个 Cloudflare 账户(免费注册,dash.cloudflare.com
  2. 可选:绑定信用卡验证(R2 免费额度 10GB,超了才收费)

Cloudflare R2 的免费额度(截至 2025/2026):

项目 免费额度
存储容量 10 GB/月
读操作(Class A) 100 万次/月
写操作(Class B) 1000 万次/月
出站流量 完全免费(零出口费)

R2 最大的亮点是零出口费——这是对比 AWS S3、阿里云 OSS 的核心优势。你做文件分享,流量最大的开销是下载,R2 这部分不收钱。

部署步骤

1. 创建 R2 存储桶

登录 Cloudflare Dashboard → 左侧 R2 → 创建存储桶。命名示例:edgestash-files,区域选自动即可。不需要开启公开访问——Worker 通过绑定访问,桶保持私有。

2. 创建 KV 命名空间

左侧 Workers 和 Pages → KV → 创建命名空间。命名示例:edgestash-kv。KV 用来存储分享链接、密码 hash 等元数据。

3. 创建并部署 Worker

这一步有两种操作方式:

方式一:Dashboard 手动部署(推荐新手)

在 Workers 和 Pages → 创建应用程序 → 创建 Worker,命名如 edgestash。从 项目仓库 复制 worker.js 代码粘贴到编辑器,保存并部署即可。

方式二:Wrangler CLI 部署(适合迭代开发)

如果你用 Wrangler:

# 安装 Wrangler
npm install -g wrangler

# 克隆项目并在 wrangler.toml 中配置绑定
git clone https://github.com/hhy-2021/EdgeStash.git
cd EdgeStash

# 部署
npx wrangler deploy

用 Wrangler 的好处是后续改代码可以直接 wrangler deploy,不用在网页上粘贴。

4. 绑定资源和环境变量

回到 Worker 的「设置」页面,做以下绑定:

R2 桶绑定:变量名 R2_BUCKET,选择刚创建的 edgestash-files

KV 绑定:变量名 KV_STORE,选择刚创建的 edgestash-kv

环境变量:添加 ADMIN_PASSWORD(你自己设置的管理员密码)

如果你用 wrangler.toml,对应的配置是:

[[r2_buckets]]
binding = "R2_BUCKET"
bucket_name = "edgestash-files"

[[kv_namespaces]]
binding = "KV_STORE"
id = "你的 KV 命名空间 ID"

5. 测试访问

访问 https://edgestash.你的用户名.workers.dev,用管理员密码登录。上传一个文件测试,尝试创建分享链接。

6. 绑定自定义域名

如果 Workers.dev 的域名不好记,或者你在国内无法访问 Workers.dev(下面会讲),可以绑定自己的域名:

Worker → 触发器 → 自定义域名 → 添加。输入一个子域名,比如 pan.yourdomain.com,前提是域名托管在 Cloudflare。Cloudflare 会自动配置 DNS 和 SSL 证书。

踩坑记录

管理员登录无反应

输入管理员密码后页面没有跳转?这是前端登录逻辑的一个小 bug。解决办法:切换到「用户登录」标签,清空邮箱输入框,再切回管理员登录重试。

Workers.dev 在国内无法访问

Workers.dev 域名在中国大陆被封锁了。如果你面向国内用户,必须绑定自定义域名,并且域名托管在 Cloudflare 才行。

大文件限制

免费版 Workers 的请求体大小限制约 100MB。如果你需要分享更大的文件,可以考虑用 Rclone 或其他 S3 客户端直接上传到 R2 桶,然后把文件 URL 手动分享出去。EdgeStash 更适合中等体量的文件分享场景。

免费额度监控

R2 免费 10GB,超出后按 $0.015/GB/月 计费。Workers 免费 10 万请求/天。建议在 Cloudflare Dashboard 设置预算警报,防止意外超量。

总结

EdgeStash 提供了一个非常轻量的私有云盘方案——没有服务器成本,部署只需要在 Cloudflare 后台点几下 + 粘贴一段代码。它不适合做大文件存储或高并发场景,但对于以下需求来说足够了:

  • 个人文件分享:替代 WeTransfer、奶牛快传,文件自己掌控
  • 小团队协作:多用户系统,管理员可以授权团队成员
  • 文档分发:密码分享 + 在线预览,适合发给客户或合作伙伴
  • 静态资源存储:结合 Workers 路由做全球 CDN 加速

如果你已经在用 Cloudflare 管理域名,部署一个 EdgeStash 可能只需要 5 分钟。试试看,你可能会发现免费的 R2 额度比你想象的够用。