2015-06-11 112 views
4

我试图用Dropbox和Core API实现我的iOS应用程序的Documents目录同步。我只需要非常基本的同步功能,使Documents目录与App的Dropbox目录保持一致。但是,我发现自己必须立即考虑硬同步问题,比如检查文件的差异,确定如何确定本地目录是否需要更新,是否允许进行外部更改等等。 - 那些相当先进的东西,以及我认为Dropbox SDK会抽象出来的东西。与Dropbox核心API同步

感觉就像我正在解决同步问题并重新发明轮子,而不是专注于我的应用程序。

听起来像我真正需要的是Sync API,但它已被弃用。

是否有一个实现与Core API同步行为的指南,或者如果没有,是否有通用指南来实现与云服务的同步?

回答

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的核心SDK loadDelta)三角洲:

https://blogs.dropbox.com/developers/2013/12/efficiently-enumerating-dropbox-with-delta/

对于客户端应用程序,使用/ longpoll_delta是知道什么时候的好办法事情的变化(即,要知道何时调用/三角形):

https://blogs.dropbox.com/developers/2013/11/low-latency-notification-of-dropbox-file-changes/

该端点没有目前在iOS的核心SDK实现,虽然,但该SDK是开源的,所以你可以根据需要修改它。

+0

好吧,我不认为这个问题是广泛的,因为同步API做了一些特定的事情,并在[本文](https://blogs.dropbox.com/developers/2015/04/deprecating-the-sync -and-datastore-apis /)关于它的弃用,有承诺发布“在新SDK上构建同步式应用程序的技巧”,这是我所希望的。无论如何,非常感谢你的回答,对我而言,这似乎是一个很好的课程。 – magiclantern

+0

即使这个问题,因此答案是非常具体的,我想知道为什么投票?答案让一群开发者想知道现在什么时候Sync API被弃用。 – lekksi