필수 다운로드 도구 - 사용자 정의 헤더, 재개, 재시도, 사용자 정의 파일 이름 출력 및 동적 리디렉션 포함

필수 다운로드 도구 - 사용자 정의 헤더, 재개, 재시도, 사용자 정의 파일 이름 출력 및 동적 리디렉션 포함

간단한 질문 - 다운로드 관리자, 콘솔, GUI가 필요합니다. 상관없습니다. 문제는 다음과 같습니다.

  • 사용자 정의 헤더 - 다운로드하려면 쿠키를 전달해야 합니다(인증).

  • 계속 - 어떤 이유로든 다운로드가 중지되면 처음부터 시작하는 대신 (예를 들어) 50%부터 계속할 수 있습니다.

  • 재시도 - 프로그램이 자동으로 연결을 시도하고 다시 다운로드할 수 있도록 합니다.

  • 사용자 정의 파일 이름 출력 - 데이터가 이동하는 곳에 특정 파일 이름을 지정할 수 있습니다.

  • 및 동적 리디렉션 - 따라서 서버에 파일을 요청하고 X서버가 "좋아요, 여기 있습니다 X?token=767"라고 응답하면 다운로더는 원래 이름을 수락합니다. X(즉, 내가 요청한 것과 동일하다고 생각할 것입니다.)

저는 콘솔을 선호하기 때문에 지금까지 wget, 컬, aria2c를 사용해 보았습니다. 그들은 모두 실패했습니다. wget은 사용자 정의 파일 이름 출력을 처리하지 않으며(그냥 파일에 덤프함) 리디렉션에 의해 "속게 됩니다". 즉, 위의 예와 같이 데이터를 파일에 저장하므로 X?token=767실제로 복구가 중단되고 토큰으로 다시 시도합니다. 다시 연결할 때마다 변경됩니다.

aria2c와 컬은 다운로드를 시작하지도 않습니다. 내 생각엔 그들은 리디렉션을 전혀 받아들이지 않고 aria2c는 성공하지 못한 채 0바이트를 다운로드하려고 계속해서 시도하고, 컬은 파일이 이동된 서버에서 응답을 다운로드합니다 X?token=767.

기록을 위해 내 다운로드 명령은 다음과 같습니다.

얻다

wget -rc --no-cookies --header "Cookie: COOKIEKEY=COOKIEVALUE" \
     "https://www.foo.bar/file.gz"

아리아 2c

aria2c -o f.gz --check-certificate=false -c -m0 \
       --header="Cookie: COOKIEKEY=COOKIEVALUE" \
       "https://www.foo.bar/file.gz"

곱슬

curl -o f.gz -C - --retry 1000 \
     -H "Cookie: COOKIEKEY=COOKIEVALUE" \
     "https://www.foo.bar/file.gz"

답변1

wget 리디렉션 문제는 다음을 사용하여 해결할 수 있습니다.

wget --trust-server-names http://www.example.com/X?1234

관련 정보