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