下载Java中的管理器
我需要通过FTP / HTTP从Java几个大文件(几个演出)。 有没有一个现成的库(java /命令行工具)来方便下载? 一些明显的要求是:
编辑 - 我真的不想写这样的图书馆,而是窃取(或支付)现有的经过测试的生产级图书馆。 rsynch不相关,因为我需要从HTTP和FTP站点下载文件,它不适用于内部文件传输。
HTTP协议确实支持以偏移量开始部分下载,但对验证文件的本地部分版本以确保它没有附加到末尾的垃圾(或类似的东西)的支持有限。 如果你的环境允许,我推荐带--partial选项的rsync
。 它旨在支持命令行中的这种功能。
如果你不能使用rsync,你可能想尝试使用Commons-HTTPClient并使用Range HTTP头来下载可管理的大小的块。
如果你知道如何在java中创建套接字和线程,那并不难。
首先创建一个请求并读取头文件以获取Content-length
头文件。 然后设计一个策略,以每个请求500K的块为单位分割您的请求。 然后用每个请求的线程开始说10个请求。 在每个请求中你必须定义Range
头。
恢复下载是存储尚未下载的范围的问题。 我建议你在这里阅读这个HTTP / 1.1 Header Fields RFC,如果你真的想要掌握所使用的协议。
但是,如果你正在寻找一种简单的方法,rsync或scp就足够了。
链接地址: http://www.djcxy.com/p/43601.html