有没有支持WebDav的类似尾巴的工具

有没有支持WebDav的类似尾巴的工具

我的问题是,我正在开发的专有 SaaS 平台仅通过 WebDav 提供日志文件。在开发过程中,这些日志文件到一天结束时可能会变得非常大(大约 200 Mb 以上),但在尝试追踪“一般错误”时非常详细且有用。

现在我的情况是,为了查看日志文件,我每次都必须下载 200 Mb 的文件(如果我删除它,它不会自动重新创建 :(),这意味着即使在良好的连接下,您也必须等待 1-2 分钟才能下载文件。

所以实际问题又来了:是否有任何工具可以每 5 秒查看一次(例如)文件的时间戳并仅下载添加的块(使用计算出的大小差异)。

答案1

  • WebDAV 是 HTTP 的扩展,通过当前可用的方法[1] 对此没有任何支持。

  • 您可以查看通过 HTTP 进行部分文件传输的替代方法,例如同步这将仅传输已改变的内容。


1. zsync

抽象的:本文档介绍了 zsync 背后的思想,这是一种新的文件传输程序,可以实现仅高效下载接收方尚不知道的文件内容。zsync 使用 rsync 算法,但在客户端实现,因此只需要在服务器上进行一次性预计算,使用 zsync 不需要特殊的服务器软件或新协议。

更新:

根据 rsync 算法:

  • 一端计算每个不同数据块的校验和,并将其发送到另一端。然后另一端对其文件进行滚动校验和,识别共同的数据块,然后找出不共同且必须传输的数据块。

  • 在 rsync 中,服务器完成所有艰苦的工作,而在 zsync 中,请求数据的客户端完成应用 rsync 滚动校验和并与下载的校验和列表进行比较的所有艰苦的工作。

从 [4]

...因此,我们将其设置为计算每个不同块的校验和的服务器。由于它只需要为每个数据块计算一个校验和,并且这不是特定于任何特定客户端的,因此可以缓存数据。我们可以将这些数据保存到元文件中,客户端请求这些数据作为该过程的第一步。这个元文件可以简单地位于同一台服务器(甚至是不同的服务器)上的另一个 URL 上。

zsync 客户端将提取此元文件。然后,它会遍历已有的数据,应用 rsync 滚动校验和并与下载的校验和列表进行比较。这样,它便可识别出目标文件中已有的数据。然后,它会向服务器请求剩余的数据。由于它知道需要哪些数据,因此它可以简单地使用 HTTP Range 请求来提取数据。...

  • 因此服务器端需要支持HTTP Range标头。

2. zsync 的替代方案

  • 但是如果这些日志文件只会增长,因此现有内容不会改变,那么 HTTPRange标头就足够了。[2][3]

参考:

  1. http://www.webdav.org/specs/#dav
  2. http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35
  3. http://greenbytes.de/tech/webdav/draft-ietf-httpbis-p5-range-latest.html#range.requests
  4. Zsync 理论

答案2

如果客户端是 Windows 计算机,请尝试以下操作:将 webdav 共享映射为网络驱动器并运行尾巴文件上的命令。

相关内容