文件管理
盘符视图:每种存储一张盘。分页列表、无限滚动、网格/列表、排序、面包屑深链。
- 全局搜索,结果带所在目录,一键定位
- 按类型 / 时间 / 收藏 / 标签筛选
- 批量重命名(≤100)、复制到…、移动、删除带进度
- 星标收藏、标签、最近上传
Cloudflare Workers · 单用户 · 零 npm 依赖
文件管理、在线预览、分享、同步——全部收进一个 Worker。
本地 KV / R2 加 6 种外部存储,各自一张盘,互不混排。
功能
六组能力,一眼看完。细节数字均以仓库代码为准。
盘符视图:每种存储一张盘。分页列表、无限滚动、网格/列表、排序、面包屑深链。
拖拽 / 批量 / 文件夹上传,进度、速度、ETA 实时显示,失败重试,冲突二选一。
单文件 ticket 直链(15 分钟有效);多文件走下载清单,先测速再分批下。
点开即看,不用来回下载。
单个 / 批量建链,一文件可挂多条不同密码与过期的链接。
关掉网页,服务端照样干活。
存储 · 8 种
实际生效上限 = 项目限制 ∩ Cloudflare 平台 ∩ 后端官方,三者取最小。点下面按钮筛选。
20MB / 文件 · 默认总量 900MB
Worker 绑定即用。写 1000 次/天,超了次日恢复;写超限自动转存 R2。
5GB / 文件 · 默认总量 9000MB
分片续传 + 预签名直传,零出站费。免费 10GB/月,首选大文件盘。
5GB / 文件(经本站) · 日传 750GB
Client ID / Secret / Refresh Token / 文件夹 ID 四项接入,增量同步。
免费版实际 1GB / 文件 · 直传 100MB
注意选对区域域名(美/欧/印/中)。超 100MB 自动切续传模式。
64MB / 文件(Worker 内存墙)
邮箱 + 会话 ID + 主密钥(站内小工具生成一次)。实时读取,无需同步。
5GB / 文件 · 无 64MB 墙
自托管 MEGAcmd / mega-webdav 桥接后填地址,零加解密透传。
5GB / 文件 · 默认总量 9000MB
Key ID + Application Key + Bucket。上传免费,出站月均 3 倍内免费。
5GB / 文件 · 按服务商空间
S3:Endpoint + Bucket + Key(Tigris 已实测)。WebDAV:pCloud / Koofr / InfiniCloud 已实测,Nextcloud / 群晖照填即用。
| 后端 | 单文件 | 总量 / 日量 | 超限表现 |
|---|---|---|---|
| KV | 20MB | 默认 900MB · 写 1000 次/天 | 400 / 413 / 429 次日恢复 |
| R2 | 5GB | 默认 9000MB · 无日 GB 上限 | 413(全局满) |
| Google Drive | 5GB(经本站) | 日传 750GB/用户 | 403 / 429,等 24h |
| Zoho | 免费版 1GB | 无日上限,按套餐空间 | 400 切续传 · 507 空间满 |
| MEGA 原生 | 64MB | 免费 20GB 起 | 400 换中转或 R2/B2 |
| B2 / S3 / WebDAV | 5GB | 按桶 / 账号空间 | 413 配额满 · 4xx 填表错 |
架构
前端原生 JS(无构建),后端 ESM 全跑 Web 标准 API。新增存储只需加一个适配器。
src/frontend 18 个文件,全靠 window.* 协作;src/static/style.css 是唯一真相样式源。
src/worker 约 45 个 ESM 模块,导入一律带 .js 后缀;D1 访问经重试封装,慢查询 >500ms 告警。
文件内容不进 D1,只存元数据;配额按后端分列记账,写即失效缓存(≤20s 延迟)。探针:GET /api/health。
安全
X-CSRF-Token == jti + Origin / Sec-Fetch-Site 校验;登出写黑名单。JWT_SECRET / TICKET_SECRET 只经部署脚本写入 Secrets;MEGA 凭据 AES-GCM 加密存库。部署
完整步骤见仓库 docs/01-部署指南.md;下面是速览。
Linux / macOS / Windows 有终端。依赖只有 curl(缺 jq 自动装)。
./scripts/linux/deploy.shscripts/windows/deploy.bat*/5)并回读校验UPGRADE=1 … --upgrade只会用浏览器也行,全程点鼠标,约 7 步。
scripts/single/worker-single.js(Raw 全选)DB / KV(大小写敏感)JWT_SECRET / TICKET_SECRET(值不同)* * * * *,用 /api/health 验证心跳GET /api/health → bootstrap-status → setup / login → files/list?parentId=root。进管理后台接外部存储前,先确认 lastCronAt 有心跳。
问答
≤20MB 任意盘都行;大文件、分享热门文件走 R2(分片续传、零出站费)。只绑 D1 不绑 KV 也能打开,但根目录没有可写的本地盘。
这是 Worker 内存墙,不是 MEGA 官方限制。超 64MB 请用 MEGA WebDAV 中转(回 5GB 硬顶),或换 R2 / B2。
不是。开页时轮询一直在推进,关页后只剩 Cron 每分钟一次。管理后台生成保活 Token,用外部定时器每 30–60s 调一次 /api/jobs/pump 即可接近开页速度。
个人用够。注意三块天花板:Worker 请求体 100MB、大文件走直传/MPU 绕开;KV 写 1000 次/天;D1 单库 500MB(只存元数据,基本碰不到)。
token 存哈希不存原文;密码 ≥8 位;过期最长 5 年;输错多次锁定。每条链接有浏览/下载统计,可随时撤销。
不会。脚本用 --upgrade 只覆盖代码;手动重贴 worker-single.js 即可。数据库启动时自动迁移,无需手动建表。
更新
8 种存储齐了(新增 B2 / S3 / WebDAV / MEGA);星标、标签、批量重命名、最近上传;复制/拉取变后台任务,关页接着跑;MEGA 浏览器直连下载;同步间隔与 Cron 优先级可调。
图片灯箱、音视频直播、PDF 内嵌、文本在线改;搜索定位到目录;一文件多分享链接;新增“复制到…”;上传冲突二选一、下载单文件重试。
多用户/邀请码/共享空间下线,只剩一个 owner(无限配额);首页变盘符视图;数据库自动迁移,老管理员直接沿用。
本目录 pags-index/ 就是纯静态站:index.html + styles.css + app.js,零依赖、无构建。两种上线方式:
npx wrangler pages deploy pags-index --project-name=clouddrive-intro或 Dashboard → Workers & Pages → Create → Pages → Upload assets,把 pags-index 文件夹直接拖进去。后续改文字只改 index.html,改样式只改 styles.css,重新上传即生效。