PocketChest:基于 Cloudflare 的临时文件分享,上传即拿码,过期自动删
前言
要发个文件给别人,你现在怎么做?
微信发 —— 文件大了传不了。网盘分享 —— 得登录、建共享链接、还要暴露自己账号。临时文件分享服务 —— 要么要注册,要么有奇怪的广告。
PocketChest 是开源的临时文件分享方案,一句话概括:上传文件 → 拿 6 位提取码 → 发给对方 → 过期自动删除。
整套跑在 Cloudflare 上(Pages + Workers + R2 + D1),部署在你自己的 Cloudflare 账号下,数据完全在你手里。不需要服务器,不需要数据库运维。
技术架构
浏览器 → Cloudflare Pages (Next.js 前端) ↓ Cloudflare Workers (API 后端) ↓ ├── D1 数据库 (提取码、过期时间) └── R2 对象存储 (文件本身)纯 Cloudflare 全栈。文件存在 R2 里(S3 兼容、免流量费),元数据在 D1(Cloudflare 的 SQLite 兼容数据库),Cron 触发器定期清理过期文件。
核心功能
- 无需注册:任何人都能上传和下载,打开即用
- 6 位提取码:上传后生成唯一提取码,发给对方输入就能下载
- 自动过期:1 天、3 天、7 天、15 天,或永久保存
- 200GB 大文件:基于 R2 分片上传,文件大小不受 Workers body 限制
- TOTP 二次认证:可选开启,上传需要输入 Authenticator 验证码
- 文本 + 文件混合分享:可以同时上传文件和粘贴文本
部署
PocketChest 是 Cloudflare 原生应用,部署在 Cloudflare Dashboard 里操作:
- Fork 项目到自己的 GitHub:https://github.com/CoCoBoom/pocketchest
- 在 Cloudflare Dashboard 创建 Pages 项目,连接 GitHub 仓库
- 配置环境变量(R2 bucket、D1 database、JWT_SECRET 等)
- 创建 Workers 服务和 Cron 触发器
项目 README 有详细的环境变量清单和部署指南。
使用场景
跨设备传文件
手机拍了张图想发到电脑上 —— 微信发会压缩,AirDrop 只有苹果设备能用。PocketChest 上传拿码,电脑上输入码下载,原图不压缩。
临时分享敏感文件
合同、身份证照片这类敏感文件,不适合发微信(会被缓存到腾讯服务器)。PocketChest 设 1 天自动过期,对方下载后文件自动删除。
团队文件交换
设计师给开发发设计稿、开发给测试发安装包。不需要网盘账号,不需要权限管理 —— 上传拿码发群里就行。
安全考量
- HTTPS 全程加密:Cloudflare 默认 SSL
- TOTP 二次认证:陌生环境上传需要验证,防止滥用
- 自动过期:文件不是永久存着的,到期自动清理
- 数据在你自己账号下:不经过第三方服务
总结
PocketChest 解决的是一个很具体的场景:临时、安全、无摩擦地分享文件。
Cloudflare 全栈架构意味着零服务器成本、零运维负担。部署一次,之后就只是用 —— 上传、拿码、分享。过期自动清理,不占存储、不留痕迹。
如果你经常需要临时传文件,花半小时部署一个 PocketChest,比任何第三方文件分享服务都省心。