wget: como baixar um arquivo servido mantendo seu nome

1

Um pequeno servidor IoT retorna um arquivo, cujo nome é dado pela data e hora atuais, para torná-lo exclusivo. O formato é 2018.07.04.18.22.45.dat .

Solicitando o endereço XX.XX.XX.XX:5001/read em um navegador (com o cache do navegador desabilitado), o arquivo é retornado com seu nome original.

Usando o wget, infelizmente não consigo preservar o nome do arquivo: wget XX.XX.XX.XX:5001/read retorna o conteúdo adequado, mas com o nome read , read.1 , read.2 , etc.

Existe a possibilidade de coletá-lo mantendo o nome, usando wget ou outros comandos?

ADDENDUM : usando curl XX.XX.XX.XX:5001/read obtenho o conteúdo bruto em vez do arquivo.

ADDENDUM : como uma solução alternativa imperfeita, posso gerar um nome de arquivo com base no timestamp com wget -o $(date "+%Y.%m.%d-%H.%M.%S.%N.dat") XX.XX.XX.XX:5001/read . Claro que não corresponde ao nome do arquivo original.

    
por Alex Poca 04.07.2018 / 19:36

1 resposta

2

Use wget --content-disposition <url>

Explicação: o cabeçalho Content-Disposition pode ser usado por um servidor para sugerir um nome de arquivo para um arquivo baixado. Por padrão, wget usa a última parte da URL como o nome do arquivo, mas você pode substituir isso com --content-disposition , que usa o nome sugerido do servidor.

    
por 04.07.2018 / 20:07

Tags