2009-10-31 66 views
7

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

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

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

回答

2

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

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

2

如果您知道如何在java中创建套接字和线程,那并不难。

首先创建一个请求和读头得到Content-length头。然后设计一个策略,以每个请求500K的块为单位分割您的请求。然后用每个请求的线程开始说10个请求。在每个请求中,您必须定义Range标题。

恢复您的下载存储你还没有下载的范围的问题。 我建议你阅读这个HTTP/1.1标题字段RFC here如果你真的想很好地掌握所用的协议。

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