【问题标题】:Syncing database like entries with google drive将类似条目的数据库与谷歌驱动器同步
【发布时间】:2013-09-05 00:48:11
【问题描述】:

我有一个应用程序在同一用户的多个 android 设备上运行。这些设备中的任何一个都必须维护一个需要在所有设备之间同步的本地数据库。两台设备很可能同时添加或删除条目,这意味着很可能会发生不一致。

这是我需要的东西清单:

  • 数据保存在类似数据库的方案中(每个条目一行)
  • 不会因为当前的修改而丢失任何更改
  • 与未更改的数据相比,更改非常小(需要增量更新)
  • 设备未连接到谷歌驱动器时可能会更改数据
  • 带宽很重要(同步整个事情是不可能的。但是块是)
  • 可以添加、修改和删除条目(也可以通过删除条目的内容来完成)
  • 条目相当小 (~2kb)

我知道 Google 驱动器不是数据库,因此我目前正在搜索和考虑一种解决方案,该解决方案在没有任何其他服务器的情况下仍然允许这种情况。我知道这可能没有解决方案,但在我放弃这个想法之前,我想确定一下。

到目前为止,我发现唯一可以使用这种方法的是 If-Match: "E_TAG" 标头字段,但假设我表示文件结构中的条目,我将不得不以原子方式更新多个文件,这似乎是不可能的。

有没有办法通过谷歌驱动器来完成这个?我还搜索了在没有文件锁定的文件系统上工作的同步概念,但我也找不到任何东西。

【问题讨论】:

  • Drive Realtime API 完全符合您的要求。不幸的是,它目前只有 javascript。

标签: google-drive-api


【解决方案1】:

这一切都可以通过 Google 云端硬盘实现,但您需要使用可用的云端硬盘原语构建您自己的所有同步逻辑。您还需要自己处理更新冲突解决方案。您将使用 etags 以及更改提要来执行此操作。但请注意,这不是微不足道的。

如果您不需要使用云端硬盘,那么 Firebase 可能是一个不错的选择。

【讨论】:

    猜你喜欢
    • 2014-11-26
    • 1970-01-01
    • 2016-08-30
    • 1970-01-01
    • 2023-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多