✦ 为什么选择 OtterHub?
在尝试过各种图床和轻量分享方案后,我一直在寻找一个真正适合长期自用的私人云盘:要足够简单、完全免费、大文件支持良好,且不依赖复杂的服务器运维。
OtterHub 完美契合了我的需求:
- 零成本存储:利用 Telegram Bot API 作为无限存储后端。
- Serverless 架构:跑在 Cloudflare Pages 上,无需维护服务器。
- 大文件友好:支持分片上传(实测 100MB+)与 HTTP Range 视频流预览。
- 极简私密:JWT 密码锁,UI 清爽,像水獭藏鱼一样安全。
✦ 我的部署架构
虽然官方推荐 GitHub 联动部署,但作为实用主义者,我选择了更自主的 wrangler CLI 路线:
- 计算层:Cloudflare Pages(处理逻辑与路由)。
- 索引层:Cloudflare KV(存储文件元数据)。
- 存储层:Telegram 频道(实际存放文件二进制数据)。
- 前端:Next.js 构建的响应式 Web 界面。
✦ 部署全过程记录
如果你也想打造一个同款网盘,可以参考我的步骤:
1. 准备工作
- Cloudflare: 获取 API Token 和 Account ID。
- Telegram: 找 @BotFather 创建一个新的 Bot,并获取你的
Chat ID(文件存放的私聊或频道)。 - 环境: 需要 Node.js 18+(我在手机 Proot 环境下使用了 v24.19.0)。
2. 构建与配置
克隆源码后进行本地编译:
npm install
npm run build # 生成 frontend/out 静态资产
在 Cloudflare 控制台创建 KV 命名空间 oh_file_url 并绑定到项目。
3. 环境变量注入
设置以下关键变量:
PASSWORD: 你的网盘登录密码。TG_BOT_TOKEN: 你的 Bot 令牌。TG_CHAT_ID: 你的 TG 账号 ID。
4. 解决国内访问问题(关键)
Cloudflare 默认域名在国内常有干扰。经过测试,我对比了多个域名的连通性:
*.pages.dev: 连通性一般。*.eu.cc/*.ccwu.cc: 容易被运营商 DNS 污染。*.cc.cd: 目前解析最稳,直连速度非常理想。
最终我将其绑定到了:https://pan.rwpt.cc.cd
✦ 使用体验
目前 OtterHub 已平稳运行,我用它来存放日常的一些技术文档和私人小视频。
- 优点:上传逻辑顺滑,视频预览不卡顿,关键是完全不用掏一分钱。
- 提示:如果遇到
ERR_CONNECTION_CLOSED,建议检查浏览器的 QUIC 设置或调整分流规则,确保直连没被掐断。
“像水獭一样,把文件悄悄藏好,需要时再拿出来 🦦”
✦ 相关链接
- 我的网盘: https://pan.rwpt.cc.cd
- 项目源码: DJChanahCJD/OtterHub
