1

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

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

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

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

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

4

1 回答 1

2

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

或者,您可以将大文件的“块”视为资源:根据更改的性质和文件的内容,它可以是字节、章节等。

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

于 2012-08-21T20:06:19.553 回答