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

Imr*_*nyi 15 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进行少量更改的大型文件的最佳做法是什么?

RLH*_*RLH 1

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

经过一些研究后,我发现了将增量同步功能集成到 API[*] 中的功能请求。Dropbox 尚未回复,社区也没有投票赞成此请求。

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

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

在这个特定的、有问题的情况下,您错误地计算了 1 字节的差分偏移量。不好了!您现在已经损坏了数百个用户的数千个文件!

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

[*]:这是原来的参考位置,但现在是死链接。

https://www.dropbox.com/votebox/1515/delta-sync-api-for-mobile-applications

  • 我不同意你的结论:能够犯错误不应该成为不提供此类功能的理由。你不能(也不应该)照顾开发人员。只要你不故意让事情变得危险,并在事情可能危险时提供良好的警告和剩余信息,那么我认为提供这样的东西没有问题。 (6认同)
  • 您只需通过通常的上传或删除方法就可以损坏数千个文件,所以我认为您的想法没有任何意义。 (3认同)