Ferramenta de download necessária - com cabeçalhos personalizados, retomar, repetir, saída de nome de arquivo personalizado e redirecionamento dinâmico

5

Problema simples - eu preciso de um gerenciador de downloads, console, GUI, não importa. O problema está nos recursos:

  • cabeçalho personalizado - preciso passar um cookie para fazer o download (autorização)

  • currículo - assim, se o download parar por algum motivo, eu poderia continuar a partir de 50% (por exemplo), não do início

  • nova tentativa - para que o programa possa tentar estabelecer conexão e fazer download novamente

  • saída de nome de arquivo personalizado - para poder dar um nome de arquivo específico, para onde os dados vão

  • e redirecionamento dinâmico - assim, se eu solicitar ao servidor o arquivo X e as respostas do servidor "OK, aqui está X?token=767 " o downloader aceitará isso com o nome original - X acho que é o mesmo que eu pedi)

Desde que eu prefiro console, até agora eu tentei wget, curl, aria2c. Todos eles falham. wget não lida com saída de nome de arquivo personalizado (é apenas um despejo para um arquivo) e é "enganado" por redirecionamento - ou seja, como no exemplo acima, ele armazenará os dados no arquivo X?token=767 , o que estraga tanto o reinício quanto a tentativa , porque com cada reconexão o token muda.

aria2c e curl não iniciam o download. Meu palpite é que eles não aceitam o redirecionamento, aria2c tenta de novo e de novo com 0 bytes de download e nenhum sucesso, o curl baixa a resposta do servidor que o arquivo foi movido para X?token=767 .

Para o registro, abaixo dos meus comandos para baixar:

wget

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

aria2c

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

curl

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

1 resposta

7

O problema de redirecionamento do wget pode ser resolvido usando

wget --trust-server-names http://www.example.com/X?1234
    
por 25.08.2012 / 20:50