在Java下载管理器[关闭](Download manager in Java [closed])

2019-09-03 04:04发布

我通过FTP / HTTP需要几个从Java一些巨大的文件(几个演出)。 有一个现成的库(Java /命令行工具),方便下载? 一些明显的要求是:

  1. 多点下载 - 应该可以打开几个连接到服务器,以加快下载(如网际快车/ GetRight时/ ...)
  2. 恢复下载

编辑 -我真的不想写一个这样的库,但偷(或收费)为现有的测试,生产档次库。 rsynch是不相关的,因为我需要从HTTP和FTP站点下载文件,它不是内部文件传输。

Answer 1:

HTTP协议不支持在开始偏移了部分下载,但对验证文件的本地部分版本,以确保它没有连接到年底(或类似的东西)垃圾有限的支持。 如果您的环境允许的话,我建议rsync与--partial选项。 它的目的是支持这种功能的命令行。

如果你不能使用rsync,你可能会想尝试与共享,工作的HTTPClient和利用范围的HTTP标头下载管理大小的块。



Answer 2:

如果你知道如何使用Java创建套接字和线程它并不难。

首先创建一个请求和读头,以获得Content-length头。 然后制定一项战略,将拆分的例如500K每个请求块您的要求。 然后开始说使用每个请求的线程10名的请求。 在每一个请求,你必须定义Range头。

恢复您的下载存储你还没有下载的范围的问题。 我建议你阅读这HTTP / 1.1头字段RFC 在这里 ,如果你真的想要得到所使用的协议很好地把握。

但是,如果你正在寻找一个讨巧的rsync或scp就足够了。



文章来源: Download manager in Java [closed]