파이썬을 사용하여 멀티 스레드 다운로더를 만들려고합니다. 내가 크기 100MB의 비디오에 대한 링크를 가지고 있고, 각 스레드가 20MB를 동시에 다운로드하면서 5 개의 스레드를 사용하여 다운로드하려고한다고 가정 해 봅시다. 그런 일이 생기려면 초기 응답을 파일의 다른 부분 (예 : 0-20MB, 20-40MB, 40-60MB, 60-80MB, 80-100MB)을 나타내는 5 부분으로 나누어야하며, http를 검색하고 찾았습니다 범위 헤더가 도움이 될 수 있습니다. 다음은 샘플 코드http 응답을 청크로 나누는 방법은 무엇입니까?
from urllib.request import urlopen,Request
url= some video url
header = {'Range':'bytes=%d-%d' % (5000,10000)} # trying to capture all the bytes in between 5000th and 1000th byte.
req=Request(url,headers=header)
res=urlopen(req)
r=res.read()
이다 그러나 위의 코드는 내가 원하는 바이트 대신 전체 비디오를 읽고 그것을 명확하게 작동하지 않습니다. 그렇다면 처음부터 읽는 대신 동영상의 특정 부분에서 지정한 바이트 범위를 읽을 수있는 방법이 있습니까? 간단한 말로 설명하십시오.
병목 현상이 연결 대역폭 인 경우 멀티 스레딩을 사용하면 더 빨리 작업을 수행하지 못할 수도 있습니다. – martineau
제목에 대해 [_Byte serving_] (https://en.wikipedia.org/wiki/Byte_serving)이라는 Wikipedia 기사를 참조하십시오. 응답의'Content-Range' 헤더는 어떤 바이트가 전달되는지 알려줍니다. – martineau
예, 동의합니다. 나는 그것을 시험해보고 싶다. – Airbear