пытаюсь использовать Curl для загрузки серии файлов
Вопрос
Я пытаюсь использовать Curl для загрузки серии файлов в следующем формате:
..
Поэтому я использовал эту команду:
Время завиток "http://example.com/[0-9][0-9][0-9].jpg"-o"#1#2#3.gif "
Но некоторые файлы не существуют, и эта команда создаст файлы на моей стороне, но на самом деле она будет содержать только страницу с ошибкой.
Мне нужен способ, с помощью которого Curl может проверить, существует ли он на удаленном сервере, прежде чем загружать его.
Я знаю, что wget может это сделать, но запуск wget, похоже, занимает примерно в 5 раз больше времени.Команда, которую я использовал, чтобы попробовать это в wget, такова:
время http://example.com/{0..9}{0..9}{0..9}.jpg
Решение
Попробуйте опцию -f/--fail:
(HTTP) Сбой автоматически (без вывода вообще) при ошибках сервера.В основном это делается для того, чтобы лучше активировать сценарии и т. д., чтобы лучше справляться с неудачными попытками.В обычных случаях, когда HTTP-серверу не удается доставить документ, он возвращает HTML-документ, в котором указано это (который часто также описывает причину и многое другое).Этот флаг не позволит Curl выводить это и возвращать ошибку 22.
Этот метод не является отказоустойчивым, и бывают случаи, когда неуспешные коды ответа могут проскользнуть, особенно когда используется аутентификация (коды ответа 401 и 407).