奇思妙想 关于移动端数据同步方案

Allen.xu(Allen) · 2021年05月23日 · 最后由 wangke 回复于 2021年05月28日 · 243 次阅读

最近突然在想,对于那些支持离线使用的 app,是如何做同步方案的呢,特别是支持多端的,很容易冲突啊。

元思笔记在开发的桌面端也有这个问题,尤其是选择用 sqlite 来保存数据的话。一旦多端断网之后分叉,必然会产生冲突。

目前的想法

  • 让用户每次手动选择要还原的备份。如果冲突了就选一个,冲突的部分自己手动备份
  • 支持外部文件夹存放数据,通过坚果云、dropbox 之类的来自动同步
  • 上线官方服务器,引入账号机制,通过云端服务器来同步最新版本

如果是存成 git 这种倒还好一点,但是很多通用的比如 webdav 协议有配额限制,不适合同步时要读写大量文件的情况。

如果大家有其他想法,也欢迎一起来分享。

关于 Git,据我已知, js 实现的版本 https://github.com/isomorphic-git/isomorphic-git dart 实现的版本 https://github.com/GitJournal/dart-git

一个 WebDAV 做的比较好的,用于多设备书签同步的浏览器扩展:https://github.com/floccusaddon/floccus

shidenggui 回复

坚果云估计不行,坚果云自身都会出现冲突文件

为何我们不可以在数据恢复的时候去合并设备间的变更呢? 在从 WebDAV 中恢复备份时,不是直接粗暴的进行数据库文件的替换,而是先去对比两个版本数据库中出现差异的数据记录,之后对这部分的数据做恢复。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号