我正在尝试通过HTTP同步一组文件 目前,我正在使用HTTP PUT,并发送已更改的文件。但是,在同步delta非常小的大文件时效率非常低。
我想做一些更接近rsync传输增量的方法,但我想知道最好的做法是什么。
我知道我可以在两端使用rsync库,并通过HTTP包装它们的通信,但这听起来更像是反模式;通过HTTP隧道化独立协议。我想做一些更符合HTTP工作方式的事情,而不是在HTTP请求/响应中包装二进制数据(除了我的文件,duh)。
我也未能在WebDAV中找到任何相关/有用的功能。
我可以完全控制客户端和服务器的实现,因为这是一个桌面应用程序(意思是“我不需要担心浏览器兼容性”)。
答案 0 :(得分:2)
评论中建议的HTTP PATCH要求客户端跟踪本地更改。由于文件的大小,您可能无法做到这一点。
或者你可以将巨大文件的“块”视为资源:取决于更改的性质和文件的内容,它可以是字节,章节等等。
客户端可以查询所有块的哈希值,为本地版本计算相同内容,并仅查看已更改的块。