FODI:用 Cloudflare Workers 零成本搭建 OneDrive 文件列表站
前言
OneDrive 是个好东西 ——Office 365 订阅送了 1TB,存了一堆文件。但有个问题:想把某个文件夹分享给别人,要么发共享链接(暴露自己账号),要么下载下来再传。
FODI(Fast OneDrive Index)解决的就是这个场景。它在 Cloudflare Workers 上跑一个简单的文件列表页,读取你 OneDrive 里的文件,然后以网页形式展示出来。别人打开你的域名,看到的是一个干净的文件列表 —— 可以浏览、下载、预览,但完全不知道背后是 OneDrive。
整套方案完全免费,因为 Cloudflare Workers 的免费额度对个人使用来说绰绰有余。
Cloudflare Workers 免费额度够用吗?
先算账。免费计划:
| 资源 | 免费额度 | 个人场景够用吗 |
|---|---|---|
| 请求次数 | 100,000 次 / 天 | 够。就算每天 1000 人访问,3 万次 / 月 |
| KV 读取 | 100,000 次 / 天 | 够。文件列表缓存读 KV |
| KV 写入 | 1,000 次 / 天 | 够。token 续期 + 偶尔刷新缓存 |
| KV 存储 | 1 GB | 用不完。只存 token 和缓存 |
坦率讲,Workers 的免费额度对个人项目来说是一个「用不完」的水平。除非你的文件站突然火了,否则不用担心超额。
部署步骤
第一步:OneDrive 授权
FODI 需要访问你的 OneDrive。走的是 OAuth 授权,不需要给密码。
去 Microsoft Azure 应用注册页面创建一个应用,获取 client_id 和 client_secret。这一步稍麻烦,但跟着官方文档一步步走就好。
关键是在「重定向 URI」里填 http://localhost—— 用于本地获取 refresh token。
第二步:部署到 Cloudflare Workers
先装 Wrangler CLI:
npm install -g wranglerwrangler login然后克隆 FODI 项目:
git clone https://github.com/vcheckzen/FODI.gitcd FODInpm install配置 wrangler.jsonc,填入你的 OneDrive 凭据和 Cloudflare 账号信息。然后:
wrangler deploy部署完成。你的文件站已经在 https://fodi.你的域名.workers.dev 上线了。
第三步:绑定自定义域名
Workers 默认域名太长了。在 Cloudflare 控制台 Workers → Triggers → Custom Domains 里绑定一个短域名,比如 files.yourdomain.com。
第四步:配置自动续期
FODI 项目内置了 Cron 触发器,定期用 refresh_token 换取新的 access_token。在 wrangler.jsonc 里配置:
{ "triggers": { "crons": ["*/50 * * * *"] }}每 50 分钟自动续一次。Token 存在 KV 里,不会过期。
功能概览
部署好之后你的文件站支持:
- 文件列表:按文件夹层级浏览,跟 OneDrive 网页版一样
- 文件预览:图片、视频、PDF、Office 文档在线预览
- 文件下载:点击直接下载
- 加密文件夹:设置密码保护特定文件夹
- WebDAV:支持 WebDAV 协议挂载到本地
- 搜索:按文件名搜索
界面简洁但该有的都有。不是 OneDrive 网页版的翻版,就是一个干净的索引页。
跟 alist 比呢?
alist 是另一个流行的文件列表方案,功能更多、支持更多存储后端。但 alist 需要一台服务器(或者至少一个容器),而 FODI 跑在 Workers 上,零服务器成本。
选哪个取决于你的需求:
| FODI | alist | |
|---|---|---|
| 部署 | Cloudflare Workers | 需要服务器 / Docker |
| 费用 | 免费 | 需服务器成本 |
| 存储后端 | 仅 OneDrive | OneDrive/阿里云盘/本地等 20+ |
| 功能 | 基础列表 + 预览 | 更全(上传/管理/多用户) |
如果你只需要一个简单的 OneDrive 文件分享页面,FODI 是最省事的方案。如果需要管理多个网盘或者多人协作,alist 更合适。
总结
FODI 的魅力在于极致简单:OneDrive 授权 + Wrangler 部署 = 一个能用的文件列表站。不需要服务器、不需要数据库、不需要维护。
Cloudflare Workers 的免费额度让这个方案可以长期零成本运行。对于「分享一些文件给朋友」「把自己 OneDrive 当简易网盘用」这种场景,没有比这更省事的方案了。