zsync:使用rsync算法在http上下载差分文件(2010)

2021-06-20 21:01:51

zsync是一个文件传输程序。它允许您从远程服务器下载文件,您可以在其中您的计算机上有旧版本的文件副本。 zsync仅下载文件的新部分。它使用与rsync相同的算法。但是,如果rsync被设计用于将数据与组织中的一台计算机同步到另一台计算机,则Zsync专为文件分发而设计,其中一个文件在服务器上分发到数千个下载器。 Zsync不需要特殊的服务器软件 - 只是一个Web服务器托管文件 - 并在服务器上施加额外的负载,使其成为大规模文件分发的理想选择。

ZSYNC是开源的,分布在艺术许可证的版本下。反馈,欢迎错误报告和修补程序。

ZSYNC填充了可用于大规模文件分发的技术中的差距。三个关键点解释了为什么zsync为文件分发提供了真正的新技术:

- zsync使用rsync算法,但在客户端运行它,从而避免与rsync相关联的高服务器负载。

- Zsync提供几乎与rsync-s或cvsup有效的传输,而无需运行特殊服务器应用程序。所需要的只是一个符合HTTP / 1.1的Web服务器。因此,它通过防火墙和共享托管账户工作,并提供更少的安全担忧。

- rsync对压缩文件无效,除非它们被修补版的gzip压缩。 Zsync对Gzipped文件具有特殊处理,它可以启用更新分布在压缩表单中的文件传输。

据我所知,压缩文件的特殊处理是ZSYNC的全新和唯一的。客户端rsync和http的组合也是zsync的唯一,据我所知。

我已经提出了技术论文。目前有一篇目前的论文,它反映了Zsync'最新的发展,以及我在新的测试和比较时用新数据更新;还有较旧的技术纸张快照,包括参考和引用。

如果人们提供Zsync下载,Zsync只有有用。我已经故意努力使Zsync在使用中简单可靠,易于部署。

- 通过构建.zsync文件提供zsync下载,其中包含zsync所需的元数据。此文件包含rsync算法的预先计算;它在服务器上生成一次,然后由任何数量的下载器使用。

- .zsync文件有一个简单的文本标题,因此可以使用任何好的编辑器编辑,以更改下载URL等详细信息。

- .zsync包含一个相对URL到文件的完整内容,因此您可以在同一服务器上生成并将其提供完整下载(并且可以像其他任何其他文件一样分发到镜像站点上)。或者它可以包含一个或多个绝对URL(如果需要,客户端将尝试多个URL以查找内容),这意味着.zsync可以完全托管在不同的服务器上;实际上,可以由第三方生成和提供.zsync,同时仍将大部分下载留给原始分发站点。

由于zsync是一个文件分发方法,因为只有在人们提供的.zsyncs进行下载时,它只有用。它有点难以展示程序并因为这个而构建用户群。所以我为客户端页面上提出了许多用于Zsync的用途;这些包括一些Zsync下载,我提供下载我自己,以便立即使用该计划。

如果您是寻求使用Zsync进行文件分发的服务器运算符,请参阅服务器页面,这为如何创建和提供.zsync文件提供了一些指导。

我非常满意Zsync到目前为止如何运作,但我仍然对新的想法和优化开放。我确保格式以兼容的方式相当可扩展;我希望当前版本的Zsync的用户不会在可预见的未来与更高版本的兼容性问题。

我也希望冻结zsync库和thecurrent命令行客户端之间的接口;我将在某些点拆分zsync到一个动态线程,它实现格式并允许它嵌入到其他项目和客户端程序中。这在一定程度上取决于任何有兴趣将Zsync嵌入其他方案的兴趣;如果我没有听到任何人都听到了这样做,那么这可能会等到我自己用了它。

我有兴趣听取有关Zsync的反馈。欢迎漏洞,崩溃和功能建议。也许我都对听到Zsync的使用感兴趣:我想听到任何严肃的zsync使用,因为了解人们如何使用它会影响我工作的哪个功能。如果有特征需要启用特定使用,那么我也想听到这一点,特别是有兴趣使用Zsync作为库的任何人作为更大程序的一部分;请注意,对多个文件的支持已经存在多次,但由于缺乏时间,我不太可能在不久的将来工作。