我的问题是,一个专有的SaaS平台即时开发/仅用于通过WebDav提供日志文件。在开发过程中,这个日志文件可以在一天结束时变得非常大(想想200 Mb +),但在尝试追踪“一般错误”时非常详细和有用。
现在发生了什么,看看日志文件我必须每次下载200 Mb文件(如果我删除它不会自动重新创建:(),这意味着即使在良好的连接上你也要等待1 -2分钟用于下载文件。
所以实际问题再次出现:是否有任何工具可以在每5秒钟在文件的时间戳上查看(例如)并且只需下载添加的块(使用计算出的大小差异)。
我的问题是,一个专有的SaaS平台即时开发/仅用于通过WebDav提供日志文件。在开发过程中,这个日志文件可以在一天结束时变得非常大(想想200 Mb +),但在尝试追踪“一般错误”时非常详细和有用。
现在发生了什么,看看日志文件我必须每次下载200 Mb文件(如果我删除它不会自动重新创建:(),这意味着即使在良好的连接上你也要等待1 -2分钟用于下载文件。
所以实际问题再次出现:是否有任何工具可以在每5秒钟在文件的时间戳上查看(例如)并且只需下载添加的块(使用计算出的大小差异)。
Answers:
1. zsync
抽象 :本文档描述了zsync背后的思考,zsync是一种新的文件传输程序,它只能有效地下载接收方尚不知道的文件内容。 zsync使用rsync算法,但在客户端实现,因此服务器上只需要一次性预先计算,并且使用zsync不需要特殊的服务器软件或新协议。
更新:
根据rsync算法:
一方计算每个不同数据块的校验和,并将其发送到另一端。 然后另一端通过其文件执行滚动校验和,识别共同的块,然后确定哪些块不相同并且必须传输。
在rsync中,服务器在zsync中执行所有艰苦工作,请求数据的客户端执行应用rsync滚动校验和并与下载的校验和列表进行比较的所有艰苦工作。
来自[ 4 ]
...所以,我们将它作为计算每个校验和的服务器 明显的块。因为它需要每块只计算一个校验和 数据,这不是特定于任何给定的客户端,数据可以 缓存。我们可以将这些数据保存到元文件中,然后客户端请求 这个数据作为该过程的第一步。这个图元文件可以简单 在同一个 - 甚至是不同的 - 服务器上的另一个URL。
zsync客户端将提取此元文件。然后它贯穿了 它已有的数据,应用rsync滚动校验和并进行比较 使用下载的校验和列表。因此,它确定了数据 它已经拥有的目标文件。然后它会请求剩余的数据 从服务器。 因为它知道它需要哪些数据,所以它可以简单地使用 HTTP范围请求拉取数据。 ...
2. zsync的替代方案
参考:
Zsync
需要 Range
服务器端支持的标头。我已更新我的帖子以突出显示此内容..