2012-10-06 49 views
13

我們知道,Dropbox桌面客戶端使用二進制差異算法將所有文件分解爲塊,並且只上載雲中尚未擁有的塊(https://serverfault.com/questions/52861/how-does-dropbox-version-upload-large-files)。使用REST API的Dropbox差異/增量上載

儘管如此,據我所知,Dropbox API只能在需要同步時上傳整個文件(/files_put,/files (POST))。

是否有任何方法使用Dropbox API進行差異/增量同步,即僅上載文件的更改部分(如桌面客戶端)?

如果這是不可能的,那麼使用Dropbox API定期同步大小文件的最佳做法是什麼?

+0

偉大的問題 - 你有沒有找到答案? – DoctorG

+0

不幸的不是。如果我發現任何相關的東西,我會回到這個帖子。 –

+0

AFAIK,您可以使用HTTP範圍檢索請求(http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.2) 通過塊下載文件Dropbox HTTP API支持它(至少用於下載文件),不確定上傳。 查看關於/文件(GET)方法的更多詳細信息:https://www.dropbox.com/developers/core/docs – 2013-06-27 13:57:00

回答

4

不幸的是,這是不可能的,我懷疑它可能永遠不可用。

經過一番研究,我發現了一個功能請求for delta-syncing to be integrated into the API。 Dropbox沒有迴應,社區也沒有提出這個請求。

我會做一個有根據的猜測,Dropbox之所以沒有提供此功能,可能永遠不會,因爲這是未知開發者手中的危險功能。

考慮使用這種增量更改更新系統來更新大文件的應用程序的情況。您徹底測試您的應用並將其發佈到應用商店。在最初發布幾周後,以及大量下載,你開始接受糟糕的評論和投訴,因爲你錯過了一個非常具體的測試用例。

在這個特定的錯誤情況下,您錯誤地計算了一個差異偏移量1個字節。不好了!您現在損壞了數百個用戶的數千個文件!

考慮到這種可能性,我想我會親自要求Dropbox永遠不要提供這樣的開發功能。如果他們將這樣的功能集成到API中,他們將打破他們的首要目的 - 爲您的重要文件提供一致,安全,可靠的雲備份。

+3

我不同意你的結論:能夠犯錯誤不應該成爲不提供這樣的功能。你不能(也不應該)保護開發者。只要你不故意危險,並在事情可能危險時提供良好的警告和餘地,那​​麼在提供這樣的事情時我不會看到問題。 –