Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的下载管理器_Java_Http_Ftp_Download_Download Manager - Fatal编程技术网

Java中的下载管理器

Java中的下载管理器,java,http,ftp,download,download-manager,Java,Http,Ftp,Download,Download Manager,我需要通过FTP/HTTP从Java获取几个大文件(几个Gig)。是否有现成的库(java/命令行工具)来方便下载?一些明显的要求是: 多连接下载-应该能够打开到服务器的多个连接以加速下载(如FlashGet/GetRight/…) 继续下载 编辑-我真的不想写这样一个库,而是想把它偷走(或者花钱买)一个现有的经过测试的生产级库。rsynch与此无关,因为我需要从HTTP和FTP站点下载文件,它不用于内部文件传输。HTTP协议确实支持在偏移量处开始部分下载,但对验证文件的本地部分版本以确保文件结

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

  • 多连接下载-应该能够打开到服务器的多个连接以加速下载(如FlashGet/GetRight/…)
  • 继续下载

  • 编辑-我真的不想写这样一个库,而是想把它偷走(或者花钱买)一个现有的经过测试的生产级库。rsynch与此无关,因为我需要从HTTP和FTP站点下载文件,它不用于内部文件传输。

    HTTP协议确实支持在偏移量处开始部分下载,但对验证文件的本地部分版本以确保文件结尾没有垃圾的支持有限如果您的环境允许,我建议使用--partial选项来支持这种功能


    如果您不能使用rsync,您可能希望尝试使用Commons HTTPClient并利用Range HTTP头下载可管理大小的块。

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

    首先创建一个请求并读取标题以获得
    内容长度
    标题。然后设计一种策略,将您的请求分成若干块,例如每个请求500K。然后开始说,每个请求使用一个线程处理10个请求。在每个请求中,您必须定义
    范围
    标题

    恢复下载需要存储尚未下载的范围。 如果您真的想很好地掌握所使用的协议,我建议您阅读这个HTTP/1.1头字段RFC

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