通过HTTP优化文件同步

时间:2012-08-21 07:39:10

标签: http synchronization

我正在尝试通过HTTP同步一组文件 目前,我正在使用HTTP PUT,并发送已更改的文件。但是,在同步delta非常小的大文件时效率非常低。

我想做一些更接近rsync传输增量的方法,但我想知道最好的做法是什么。

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

我也未能在WebDAV中找到任何相关/有用的功能。

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

1 个答案:

答案 0 :(得分:2)

评论中建议的HTTP PATCH要求客户端跟踪本地更改。由于文件的大小,您可能无法做到这一点。

或者你可以将巨大文件的“块”视为资源:取决于更改的性质和文件的内容,它可以是字节,章节等等。

客户端可以查询所有块的哈希值,为本地版本计算相同内容,并仅查看已更改的块。