下载Java经理

时间:2009-10-31 16:01:10

标签: java http ftp download download-manager

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

  1. 多连接下载 - 应该可以打开几个连接到服务器以加速下载(如FlashGet / GetRight /...)
  2. 恢复下载
  3. 编辑 - 我真的不想编写这样的图书馆,而是为现有的测试生产级图书馆窃取(或付费)。 rsynch不相关,因为我需要从HTTP和FTP站点下载文件,它不适用于内部文件传输。

2 个答案:

答案 0 :(得分:2)

HTTP协议确实支持在偏移量处开始部分下载,但是对于验证文件的本地部分版本以确保它没有附加到末尾的垃圾(或类似的东西)的支持有限。如果您的环境允许,我建议使用--partial选项rsync。它旨在通过命令行支持这种功能。

如果您不能使用rsync,您可能需要尝试使用Commons-HTTPClient并使用Range HTTP标头下载可管理大小的块。

答案 1 :(得分:2)

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

首先创建一个请求并读取标头以获取Content-length标头。然后设计一个策略,将您的请求拆分为每个请求500K的块。然后使用线程为每个请求开始说10个请求。在每个请求中,您必须定义Range标头。

恢复下载是存储尚未下载的范围的问题。 如果你真的想要掌握所使用的协议,我建议你阅读这篇HTTP / 1.1标题字段RFC here

但是,如果您正在寻找一种简单的方法,那么rsync或scp就足够了。

相关问题