encurva o arquivo de download e nomeie-o como custom-name.provided-extension

0

Digamos que eu tenha um monte de URLs assim:

https://domain.com/foo/bar/2d9ec0354908e055acf372

A partir do URL, não sei qual é a extensão e não tenho nenhuma outra informação "frontend" para me dizer que tipo de arquivo é.

Mas sei qual é o título do arquivo no frontend. Então, eu gostaria apenas de codificar um título ao salvar o arquivo e, em seguida, anexar a extensão que o arquivo real possui. Então, se o título do arquivo for "Arquivo A de N", eu gostaria de chamá-lo de "arquivo-a-de-n" (eu apenas escreveria isso). Então eu gostaria que o resultado final fosse:

file-a-of-n.zip

Ou seja qual for a extensão acabou sendo. Talvez em vez de .zip esse arquivo em particular fosse .tar.gz , então acabaria sendo:

file-a-of-n.tar.gz

Qualquer que seja a extensão, tudo bem, deseja anexá-la ao arquivo. Mas eu não quero isso:

2d9ec0354908e055acf372.zip

Então, querendo saber como fazer isso. Algo com curl ao longo das linhas de:

curl -o file-a-of-n.(extension) https://domain.com/foo/bar/2d9ec0354908e055acf372

E o resultado final seria um arquivo como:

file-a-of-n.zip
    
por Lance Pollard 07.11.2018 / 08:17

1 resposta

1

O

curl não suporta o que você está tentando fazer diretamente, você pode passar um novo nome de arquivo para armazenar os resultados ou determinar o nome do arquivo (e possivelmente a extensão) dos cabeçalhos HTTP.

Então você deve fazer isso em duas etapas. Eu recomendo deixar curl determinar o nome do arquivo, portanto, baixando 2d9ec0354908e055acf372.zip, que você pode renomear para file-a-of-n.zip, preservando a parte ".zip" dele.

Para facilitar o seu trabalho, crie um diretório temporário no qual trabalhar e, em seguida, crie subdiretórios para o a-of-n e faça o download do arquivo nesse subdiretório, assim você terá um único arquivo para manipular em cada subdiretório (fácil de saber qual você precisa processar), que você pode mover e renomear, preservando a extensão.

    
por 07.11.2018 / 08:46

Tags