Как сохранить удаленное имя файла при загрузке файла с помощью curl
Возможный дубликат:
Как сохранить файл с помощью имени заголовка ответа с помощью cURL
Мне нужно загрузить много тысяч изображений в формате
http://oregondigital.org/cgi-bin/showfile.exe?CISOROOT=/baseball&CISOPTR=0
Если вы вставляете эту ссылку в браузере, она пытается загрузить файл с именем 1.jp2
Я хочу использовать curl, чтобы сделать то же самое. Однако, когда я запускаю
curl -I 'http://oregondigital.org/cgi-bin/showfile.exe?CISOROOT=/baseball&CISOPTR=0'
имя файла сообщается как 404.txt, которое вы можете скачать и посмотреть, что это файл, который я хочу. Я не могу использовать параметр -O, потому что имя, присвоенное файлу, не подходит, и у меня есть технические причины для использования фактического имени, используемого в системе.
Как получить завиток для загрузки того же файла, который мне не удается найти в моем браузере? Спасибо.
Ответы
Ответ 1
[edit] Я удалил попытки изменить заголовок... решение было намного проще! [/edit]
И EUREKA! решение состоит в использовании -O -J
-O, --remote-name Write output to a file named as the remote file
-J, --remote-header-name Use the header-provided filename
Итак...
curl -O -J 'http://oregondigital.org/cgi-bin/showfile.exe?CISOROOT=/baseball&CISOPTR=0'
Ta Da!
Мне пришлось обновить CURL. У меня был v 7.19, который не поддерживает -J, но 7.22 (что является последним).
Ответ 2
Вы можете использовать опцию -o, можете ли вы? например,
curl 'http://oregondigital.org/cgi-bin/showfile.exe?CISOROOT=/baseball&CISOPTR=[0-9]' -o "#1.jpg"