2013-04-26 3 views
3

저는 파이썬에서 mechanize 라이브러리를 사용하여 서버에서 큰 파일을 다운로드하고 있습니다. 파일의 다운로드를 병렬 처리 할 수 ​​있도록 부분 파일 다운로드를 구현해야합니다. 이를 위해 헤더에 "Range : bytes = 0-499"를 추가했습니다. 그러나 서버는 499 번째 바이트부터 파일을 반환합니다.python을 사용하여 파일 다운로드

서버는 HTTP 1.0을 사용합니다. 파이썬을 사용하여 부분적으로 파일 파일을 다운로드하는 방법이 있습니까?

+1

이를 참조하십시오. http://stackoverflow.com/questions/1798879/download-file-using-partial-download-http – Chathuranga

+1

'gevent'를 사용하여 별도의 그린렛으로 파일을 동시에 다운로드 할 수 있습니다. 나는 당신이 그것과 함께 일할 수있는 Chathuranga 제안을 패치 할 수있을 것이라고 확신합니다. [이 질문을 확인하십시오] (http://stackoverflow.com/questions/6905800/multiprocessing-useless-with-urllib2). – msvalkon

+0

범위 헤더를 GET 요청에 추가하려고 시도했지만 서버는 대신 부분 컨텐트 만 남기고 나머지 파일을 필요로한다고 가정했습니다. 내 질문은 : 서버가 HTTP/1.0을 사용하고 HTTP/1.1을 사용하지 않았기 때문입니까? – UnadulteratedImagination

답변

0

저는 아직 평판이 충분하지 않아서 답변을 용서하지 못했지만 당신이 찾는 것은 여기 있다고 생각합니다. "대역폭 최적화 '와'범위 요청"페이지 다운 방식의 약 25 %에서

The Key Differences between HTTP/1.0 and HTTP/1.1

봐.

HTTP/1.0에서 부분 개체를 요청할 방법이 없습니다.

일부 HTTP/1.0 서버에는 일부 HTTP/1.1 기능이 추가되어 있지만 사용자 서버에서는 그렇지 않습니다.

당신은 서버가 다음과 같은으로 대응하면 너무 범위를 받아 말할 수있을 것입니다 :

Accept-Ranges: bytes 
관련 문제