3

我有一组具有异构操作系统的地理远程节点,这些节点需要使用我正在编写的 Java 程序来传输文件和更新。目前,如果文件更改,我需要再次发送整个文件。有没有办法确定文件中不同的部分并只发送这些部分(请注意,这些文件不一定是文本,它们可以是任何格式)。我能想到的唯一方法是将文件分成块,对块进行哈希处理并将哈希发送回请求者,然后请求者只请求它需要的块,但是对于小块和大文件,这是一个很大的开销,所以有没有如何发送一些描述我的文件的消息,以便可以分析单个消息以提供需要传输的块的列表?

大多数摘要函数的设计使得数据的微小变化会导致整个哈希输出发生很大变化,我基本上需要相反的,这将适用于所有操作系统。

4

1 回答 1

3

如果我正确理解您的问题,您需要在两个系统上保持文件同步。有一个名为的工具rsync可以通过仅发送对文件所做的更改来同步两个文件(或整个目录)。

您可能还对Rsync 算法感兴趣。

于 2012-02-17T15:46:29.983 回答