开发笔记
云端保存为什么分成正文和附件
2026-09-06 · 已部署结构与后续实时编辑
前端仍在 Vercel,地址仍为 presentor.cndy.dev。Cloudflare Workers 接收创建、读取和保存请求;D1 存正文、标题和修订号;R2 存图片等附件。GitHub Actions 负责验证和部署,运行时不依赖本机一直开着。
Markdown 适合记录内容、对象身份与布局。图片和视频适合单独存成附件,正文只保留引用;否则每次改一个字,都可能连着整张图片重新上传。
当前通过 HTTPS 保存。提交时携带上次读取的修订号:另一个标签页已经更新时,旧写入会被拒绝,当前编辑仍然保留。这能防止整份文稿互相覆盖,但不能让两个人同时修改文字。
实时编辑需要继续解决字符级合并、对象操作顺序和断线恢复。计划按每份文稿建立协作房间,用 WebSocket 传送增量,验证 Source 与画布操作如何共同提交;数据库保存不能直接充当合并算法。
Google Drive 的文件变更通知可以提示某个文件发生变化,并不提供 Presentor 的字符级协作模型。Drive 可以成为文件入口,实时合并仍需编辑器自己处理。
部署链已通过 GitHub 实测:先跑 Windows / Edge 完整回归,再在 Linux runner 检查 D1 迁移并发布 Worker。本机不需要 WSL、Docker 或 Rust 编译环境。