Подтвердить что ты не робот

Как сохранить файл, используя имя файла заголовка ответа с помощью cURL

Этот вопрос относится к версии командной строки cURL.

Я пытаюсь загрузить файл из cgi script.

http://someserver/perl/dl.pl?ID=2

Используя браузер, имя файла появляется как 'remotefilename.gz' cURL хочет сохранить файл как 'dl.pl?ID=2'

Как мне получить cURL для сохранения в файл с именем файла из заголовка ответа?

4b9b3361

Ответ 1

если у вас есть достаточно новый завиток (версия 7.20.0 или новее), - J/- remote-header-name - это то, что вы хотите.

Вы используете -J в сочетании с -O, что заставляет скручивание использовать часть имени файла из URL в качестве основного способа назвать выходной файл, а затем, если в ответе есть заголовок Content-disposition:, curl будет использовать это имя вместо этого.

Ответ 2

curl http://example.com/dl.php?file=3123123 -O -J

если сервер использует перенаправление, используйте следующие:

--location-trusted
--max-redirs 10

Ответ 3

Я обнаружил, что curl -OJ дает мне ошибку сегментации: 11 ошибка при попытке загрузить сразу несколько URL-адресов.

Моим решением было использовать wget. Последняя версия поддерживает заголовки HTTP Content-Disposition, которые часто содержат информацию о имени файла.

wget --content-disposition http://example.com/download/url

Ответ 4

вы можете попробовать опцию -o или -o.