한 서버에서 다른 서버로 다중 gb 파일을 전송하려고합니다. 문제는 RTT가 150ms +입니다. 필자는 이미 aria2를 사용해 보았으나 16 개의 연결로 제한되었으며, lftp는 지연된 전송에 대한 보호 기능이 없습니다.다중 연결을 사용하여 컬을 사용하여 다운로드
curl cli를 사용하여 여러 연결로 하나의 파일을 다운로드 할 수 있는지 궁금합니다.
한 서버에서 다른 서버로 다중 gb 파일을 전송하려고합니다. 문제는 RTT가 150ms +입니다. 필자는 이미 aria2를 사용해 보았으나 16 개의 연결로 제한되었으며, lftp는 지연된 전송에 대한 보호 기능이 없습니다.다중 연결을 사용하여 컬을 사용하여 다운로드
curl cli를 사용하여 여러 연결로 하나의 파일을 다운로드 할 수 있는지 궁금합니다.
아니요, 컬 도구에는 그런 능력이 없습니다.
(오와 BTW, 큰 RTT는 일반 TCP 전송 속도가 느린 이유에 대한 설명이 매우 드물게)
여러 개의 동시 다운로드를 수행 한 후 완료되면 그들을 결합 할 컬 랩 pcurl라는 스크립트가있다.
이 10 개 연결 기본값하지만,이 라인 (81)
에 MAX_SEGMENTS에서 변경할 수 있습니다 그것은 다음과 같이 호출 :
./pcurl.sh http://myurl.to/a/very/largefile.zip
그것은 가능합니다. curl에서 -I
옵션을 사용하여 총 파일 크기를 가져옵니다.
그러면 셸에서 많은 프로세스를 포크 할 수 있습니다. curl
연결마다 다른 Content-Length
헤더가 연결되어 파일의 다른 부분을 다운로드 할 수 있습니다.
모든 작업이 끝나면 모든 다운로드 조각을 큰 파일로 병합하십시오.
간단한 스크립트를 작성했으며 여기 mcurl.sh에서 사용할 수 있습니다. -s
옵션을 사용하면 큰 파일을 다운로드 할 때 만드는 작업 수를 지정할 수 있습니다.