多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

Fast Note Sync Service 离线同步实战:断网编辑自动合并,笔记不再冲突覆盖

Fast Note Sync Service 离线同步实战:断网编辑自动合并,笔记不再冲突覆盖 Fast Note Sync Service 离线同步实战断网编辑自动合并笔记不再冲突覆盖【免费下载链接】fast-note-sync-serviceHigh-performance, low-latency note synchronization, online management, and remote REST API service platform.项目地址: https://gitcode.com/gh_mirrors/fa/fast-note-sync-serviceFast Note Sync Service是一款高性能、低延迟的笔记同步与在线管理平台配合 Obsidian 插件使用。它的核心卖点之一就是离线同步策略断网编辑的笔记在重连后自动合并删除操作自动补全笔记不再被后写入的一方冲突覆盖。本文带你弄懂它的 3 种离线合并策略并给出三步配置清单。为什么多端同步容易互相覆盖 想象这个场景你在地铁里用 Obsidian 改了一段笔记本地无网回到办公室连上服务器而服务器上的版本刚被另一台设备更新过。传统最后写入获胜的方案会直接丢掉你地铁里的修改。Fast Note Sync Service 的处理方式是重连时先做增量比对再按你选择的离线同步策略决定合并方向无法自动合并时则保留冲突副本绝不静默丢数据。三种离线同步策略怎么选客户端在建立 WebSocket 连接时会通过ClientInfo消息上报offlineSyncStrategy字段定义见 docs/ws_api.md可选值及行为如下策略判定逻辑适合人群newTimeMerge默认按时间戳比较较新的一方胜出本地较旧时由云端覆盖本地大多数用户的稳妥选择ignoreTimeMerge忽略时间戳、客户端优先双端都有修改时触发三方 Diff 合并本地设备为主、希望本地改动优先的用户manualMerge冲突不自动处理需客户端确认后才写入对内容一致性要求极高的用户策略的调度逻辑位于 internal/routers/websocket_router/ws_note.go三方文本合并算法实现在 pkg/diff/diff.go基于 diff-match-patch 的 base / 云端 / 本地 三路合并。断网编辑后数据是如何自动合并的重连后服务端会按以下流水线处理你离线期间的每一处变更哈希比对用pathHashcontentHash快速比对内容一致的笔记直接跳过仅时间戳不同下发NoteSyncMtime只更新时间戳不动正文内容不一致按策略决定云端覆盖本地还是通知客户端上传本地NoteSyncNeedPush随后执行三方合并合并成功合并结果写入服务端并毫秒级推送给所有在线设备。消息字段与流程的完整规范见 docs/SyncProtocol.md 与 docs/ws_api.md。冲突了怎么办冲突文件 笔记历史双兜底三方合并虽然能解决大部分情况但极端冲突如同一行被两端改成不同内容会返回状态码441ErrorNoteConflict见 docs/ws_api.md。此时不会丢数据冲突文件internal/service/conflict_service.go 会把客户端版本另存为{原名}.conflict.{时间戳}.md例如notes/test.conflict.20261004120000.md你随时可以人工比对两份内容笔记历史v1.2Web 面板与插件端都可查看每个笔记的历史修改版本误操作可回看回滚回收站误删的笔记自动进入回收站支持一键恢复。离线删除会自动补全吗会。离线期间删除的笔记/文件夹/附件重连后服务端会比对清单该补全的补全、该删除的删除需插件端开启对应设置无需手动清理残留。文件夹的创建、重命名、移动、删除也全部纳入同步范围。三步快速上手离线同步部署服务端以 Docker 为例docker run -tid --name fast-note-sync-service \ -p 9000:9000 \ -v /data/fast-note-sync/storage/:/fast-note-sync/storage/ \ -v /data/fast-note-sync/config/:/fast-note-sync/config/ \ haierkeys/fast-note-sync-service:latest访问管理面板浏览器打开http://{服务器IP}:9000首次访问注册账号点击复制 API 配置配置插件在 Obsidian 插件设置页粘贴配置并选择上文三种离线同步策略之一即可。完整配置项参考 config/config.yaml。离线场景自查清单✅ 单机断网编辑重连后自动增量同步基于lastTime只传差异✅ 双端同时修改同一篇笔记按策略三方合并失败则生成冲突文件✅ 离线删除重连后自动补全或删除同步✅ 大图片/音视频附件分片上传下载断点可继续⚠️manualMerge策略下需人工确认冲突未确认前不会写入服务端。掌握以上内容你就能在飞机、地铁等无网环境下放心记录落座连网的那一刻一切自动就绪。【免费下载链接】fast-note-sync-serviceHigh-performance, low-latency note synchronization, online management, and remote REST API service platform.项目地址: https://gitcode.com/gh_mirrors/fa/fast-note-sync-service创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表