我正在尝试使用Core API与Dropbox同步我的iOS应用的Documents目录。我只需要非常基本的同步功能,使Documents目录与App的Dropbox目录保持一致。
然而,我发现自己必须立即考虑硬同步问题,例如检查文件中的差异,找出如何确定本地目录是否需要更新,允许外部更改等。 - 非常先进的东西以及我认为Dropbox SDK会抽象出来的东西。
感觉我正在解决同步问题并重新发明轮子而不是专注于我的应用。
听起来我真正需要的是Sync API,但它已被弃用。
是否有使用Core API实现同步行为的指南,或者,如果没有,是否有实现与云服务同步的通用指南?
答案 0 :(得分:0)
这是一个相对广泛的问题,具体细节将非常依赖于每个应用程序。 Dropbox没有像这样提供实现同步的一般指南,但我会尝试指出一些有用的资源。
首先,您可能希望使用iOS Core SDK(download,tutorial)。或者,您可以直接针对Core API HTTP endpoints进行开发。
当您的应用在本地更改内容时,您需要上传相关文件的新版本。用于上传的Dropbox API端点提供了一些参数,可让您控制覆盖/冲突行为:
https://www.dropbox.com/developers/core/docs#files_put
我们建议您使用parent_rev
,以避免意外覆盖,从而最终丢失数据。
要知道远程发生了哪些更改,您可以在iOS Core SDK中使用/ delta(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是开源的,因此您可以根据需要进行修改。