通过HTTP优化文件同步



我正试图通过HTTP同步一组文件
目前,我正在使用HTTPPUT,并发送已更改的文件。但是,当同步增量非常小的大文件时,这是非常低效的。

我想做一些更接近rsync传输delta的事情,但我想知道最好的方法是什么

我知道我可以在两端使用rsync库,并通过HTTP封装它们的通信,但这听起来更像是一个反模式;通过HTTP隧道传输独立协议。我想做一些更符合HTTP工作方式的事情,而不是在HTTP请求/响应中包装二进制数据(除了我的文件,duh)。

我也找不到WebDAV中已经实现的任何相关/有用的功能。

我完全可以控制客户端和服务器的实现,因为这是一个桌面应用程序(意思是"我不需要担心浏览器兼容性")。

注释中建议的HTTP PATCH要求客户端跟踪本地更改。由于文件的大小,您可能无法执行此操作。

或者,您可以将巨大文件的"块"视为资源:根据更改的性质和文件的内容,它可以是字节、章节或其他任何内容。

客户端可以查询所有块的哈希,为本地版本计算相同的哈希,并只PUT更改后的块。

最新更新