我正在尝试使用核心 API 将我的 iOS 应用程序的文档目录与 Dropbox 同步。我只需要非常基本的同步功能,使 Documents 目录与 App 的 Dropbox 目录保持一致。
然而,我发现自己必须立即考虑硬同步问题,例如检查文件差异、弄清楚如何确定是否需要更新本地目录、允许外部更改等。 -- 非常高级的东西以及我认为 Dropbox SDK 会抽象掉的东西。
感觉我正在解决同步问题并重新发明轮子,而不是专注于我的应用。
听起来我真正需要的是 Sync API,但它已被弃用。
是否有使用核心 API 实现同步行为的指南,或者如果没有,是否有通用指南来使用云服务实现同步?
最佳答案
这是一个相对广泛的问题,具体情况在很大程度上取决于每个应用程序。 Dropbox 不提供像这样实现同步的一般指南,但我会尝试指出一些有用的资源。
首先,您可能需要使用 iOS Core SDK(download、tutorial)。或者,您可以直接针对 Core API HTTP endpoints 进行开发.
当您的应用在本地发生变化时,您需要上传相关文件的新版本。用于上传的 Dropbox API 端点提供了一些参数,可让您控制覆盖/冲突行为:
https://www.dropbox.com/developers/core/docs#files_put
我们建议使用parent_rev
,以避免意外覆盖并最终丢失数据。
要了解远程发生了什么变化,您可以使用/delta(iOS Core SDK 中的 loadDelta
):
https://blogs.dropbox.com/developers/2013/12/efficiently-enumerating-dropbox-with-delta/
对于客户端应用程序,使用/longpoll_delta 是了解事情何时发生变化的好方法(即知道何时调用/delta):
https://blogs.dropbox.com/developers/2013/11/low-latency-notification-of-dropbox-file-changes/
尽管该端点当前未在 iOS Core SDK 中实现,但该 SDK 是开源的,因此您可以根据需要对其进行修改。
关于ios - 与 Dropbox Core API 同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30787574/