使用REST API进行Dropbox差异/增量上传

时间:2012-10-06 08:11:29

标签: dropbox dropbox-api

我们知道Dropbox桌面客户端使用二进制差异算法将所有文件分解为块,并且只上传云中尚未存在的块(https://serverfault.com/questions/52861/how-does-dropbox-version-upload-large-files)。

尽管如此,据我所知,Dropbox API只能在需要同步时上传整个文件(/files_put/files (POST))。

有没有办法使用Dropbox API进行差异/增量同步,即只上传文件的更改部分,就像桌面客户端一样?

如果无法做到这一点,那么定期同步使用Dropbox API进行少量更改的大型文件的最佳做法是什么?

1 个答案:

答案 0 :(得分:3)

不幸的是,这是不可能的,我怀疑它可能永远不可用。

在做了一些研究之后,我发现了一个功能请求for delta-syncing to be integrated into the API。 Dropbox没有回复,社区也未提出此请求。

我会做出有根据的猜测,Dropbox之所以没有提供此功能,而且可能永远不会提供此功能,是因为这是未知开发人员手中的危险功能。

考虑编写使用此类增量更新系统更新大型文件的应用程序的情况。您彻底测试您的应用并将其发布到应用商店。在您首次发布后的几周内,以及大量下载后,您开始收到错误的评论和投诉,因为您错过了一个非常具体的测试用例。

在这个特定的,有缺陷的情况下,你错误地计算了差分偏移1个字节。不好了!你现在已经为数百名用户破坏了数千个文件!

考虑到这种可能性,我想我个人会要求Dropbox永远不要提供这样的开发功能。如果他们将这样的功能集成到API中,他们将打破他们的第一目的 - 提供一致,安全,和可靠的重要文件云备份。