使用Mechanize下载多线程文件?

时间:2012-02-26 06:54:09

标签: ruby http mechanize

如何使用Mechanize更快地下载文件

有没有办法在下载文件之前获取内容长度,然后将其分成几部分,以便我可以使用多线程下载它?

我尝试了agent.get(uri, 'Range'=>'bytes=0-499'),但它下载了整个文件。有人告诉我正确的方法。谢谢!

2 个答案:

答案 0 :(得分:0)

没有办法。机械化不仅不是线程安全的,而且http也不允许您请求部分文档。

答案 1 :(得分:0)

curl -I -H Range:bytes=0-11 http://photocdn.sohu.com/20100125/Img269812337.jpg
HTTP/1.1 206 Partial Content
Content-Type: image/jpeg
Content-Length: 12
Connection: keep-alive
Date: Sun, 26 Feb 2012 16:49:36 GMT
Server: SWS
Cache-Control: max-age=5184000
Expires: Thu, 26 Apr 2012 16:49:36 GMT
Last-Modified: Mon, 25 Jan 2010 05:42:55 GMT
FSS-Cache: HIT from 27722327.31785751.38755221
Content-Range: bytes 0-11/36161

3注意:

  1. 范围标题仅支持HTTP1.1(rfc2616
  2. 并非所有服务器都处理范围标题
  3. 内容范围HTTP响应标头告知您请求的资源的内容长度