跳转到内容
天空之翼
↑↓选择·Enter跳转·Esc关闭由 Pagefind 提供索引
EN
本文导航

实施进度

范围、状态、审计闭环与路线图。

标记含义
已完成已实现、已测试并已验证。
进行中已实现;验证或打磨尚未完成。
计划中已纳入范围,尚未实现。
已否决明确不在范围内。
阶段范围状态
阶段 1核心平台:认证、文件、配额、角色、存储源、系统设置已完成
阶段 2上传(分片/断点续传)、预览、分享、管理面板、API 密钥、WebDAV、自由模式已完成
阶段 3AWS S3、外观主题、管理员登录、公告关闭基本完成;Oracle Provider 待实现
阶段 4路径变量 DSL({year}/{month})、统计分析计划中
领域状态说明
部署:Cloudflare Pages + Workers已完成已否决 Vercel 与 EdgeOne。
存储源已完成R2 与 S3 已实现;Oracle 待实现;已否决另外 9 家存储源。
文件浏览(卡片/列表视图)已完成GET /api/files、排序、搜索、分页。
上传(单文件)已完成基于会话,带配额预留。
上传(分片/大文件)已完成断点续传 + 服务端分片记录。
彻底删除已完成先删元数据的事务,异步清理对象。
重命名已完成PUT /api/files/:id。
移动(Saga)已完成源删除 + 目标写入的权限检查。
预览:图片/视频/音频/代码已完成图片缩放/旋转;视频 canvas 缩略图;highlight.js 预先转义。
选择与多选已完成网格 + 列表,列表视图支持范围选择。
拖拽排序与拖拽移动进行中拖拽移动可用;验证记录待补。
文件夹视图记忆已完成存于 localStorage。
属性面板已完成桌面端固定侧栏 + 移动端右侧抽屉;可编辑标题/颜色/封面/表情。
复制链接已完成多文件弹窗;直链/HTML/Markdown/BBCode;公开直链或签名直链。
分享已完成密码、有效期、下载次数限制、二维码。
外观已完成浅色/深色/跟随系统,强调色(HSL + YIQ 前景),模糊,背景图片/URL,文件夹预览开关。已移除纯色背景。
国际化(zh / en)已完成
响应式布局已完成桌面/平板/手机;浮动操作栏在 350-1080 px 范围内测试。
用户已完成注册、登录、邮箱验证、访客角色、自由模式。
权限与配额已完成3 种角色、路径 ACL、文件/路径密码、存储与文件数配额。已否决下载速度与每月流量配额。
存储配置已完成挂载、上传/CDN 域名、路径前缀、排序、签名。同路径多挂载与路径 DSL 待实现。
管理后台已完成仪表盘、用户、存储、挂载、规则、分享、文件、日志。统计分析待实现。
系统设置已完成站点信息、注册/访客开关、Turnstile。
API 密钥 + 兼容协议已完成pk_x.sk_y 不透明令牌、WebDAV、PicGo/PicList。已否决 S3/OSS 协议网关。
安全已完成CSP、CSRF、限流、路径穿越、SSRF、SQL 参数化、原子下载令牌。热点文件检测与强制签名 URL 为计划项。
图片编辑器入口(Squoosh)已完成
视频/音频播放器已完成
决策原因
回收站为避免对象存储与数据库之间软删除状态不一致而移除。
下载速度/每月流量配额只需要存储容量与文件数配额。
S3/OSS 协议网关只提供 WebDAV 与自定义上传 API。
另外 9 家存储源(B2、IDrive、GCS、COS、OSS、OBS、Scaleway、Filebase、Kodo)不在范围内。
客户端加密不在范围内;敏感路径链接改用签名 URL。
Vercel/EdgeOne 托管只用 Cloudflare。

审计发现已全部修复并用回归测试锁死。参见 workers/tests/security-regressions.test.ts、workers/tests/s3-provider.test.ts、frontend/src/lib/escape.test.ts 与 frontend/src/pages/Register.test.tsx。

风险修复证据
自由模式凭据在 KV 中明文存储(高危)AES-256-GCM 加密 + 短 TTL + 随机 sid cookie + IP 绑定加密/解密/防篡改用例
API 密钥 IP 白名单未强制执行(高危)apiKeyAuthMiddleware 对非白名单 IP 返回 403入站/出站白名单用例
分片上传分片恒为空、无续传契约(高危)服务端 parts_completed、GET /parts 续传契约、跳过 pre-HEAD 合并续传流程:缺口 → 拒绝 → 完成
缺失 /register、忘记密码只是占位(高危)独立的 /register 与 /reset-password 页面,调用真实 API注册提交/报错用例
下载令牌非原子消费(中危)把 KV 的 get→delete 换成原子的 DELETE ... RETURNING单次消费与重复 401 用例
限流 fail-open(中危)认证/敏感写端点在 KV 故障时 fail-closed(返回 503)生产环境 KV 故障用例
S3/Oracle Provider 测试 + 能力矩阵(中危)预签名分片 URL 单元测试(本地签名);Oracle 待实现S3 Provider 用例
highlight.js 转义 + 前端回归(中危)escapeHtml 预先转义,作为纵深防御转义用例
CI/CD + 覆盖率门禁(中危).github/workflows/ci.yml(bun,仅 CI)、前端覆盖率门禁、路由懒加载行覆盖率 100%
  • 后端:127 个 Vitest 用例全部通过;tsc --noEmit 无报错。
  • 前端:7 个 Vitest 用例全部通过;构建成功;tsc --noEmit 无报错。
  • 语言:zh + en。
  • Oracle Cloud Provider 实现。
  • 同路径多挂载支持。
  • 路径变量 DSL({year}/{month})。
  • 管理后台统计分析。
  • 热点文件检测与强制签名 URL。
  • 持续补充拖拽交互与属性面板编辑的验证记录。

相关指南:架构、API 参考、前端指南、开发指南、部署指南。