Загрузка с помощью curl занимает слишком много времени? Установите тайм-аут с помощью команды curl, чтобы вам не пришлось долго ждать.
cURL — отличный инструмент для сетевых коммуникаций, он означает «client URL». Практически каждое устройство использует cURL на земном шаре, которое подключается к Интернету. Самое широкое использование cURL — загрузка файлов с удаленного сервера в терминал.
Начальная фаза подключения к серверу для любого вида связи — это ожидание ответа. Задержка может возникать по множеству причин, некоторые из них — нагрузка на сервер, пропускная способность сети, задержка, джиттер и т. д.
Если задержка больше, чем вы хотели бы подождать, вы можете указать продолжительность тайм-аута.
Лучший способ добиться этого — использовать опцию —connect-timeout.
curl --connect-timeout <duration> <URL>
Вы можете указать время ожидания в секундах (например, 5), в миллисекундах (например, 0,001) или в виде комбинации секунд и миллисекунд (например, 4,20), и curl будет использовать это время как максимальное время для ответа до установления соединения. сбрасывается.
cURL имеет необязательный флаг —connect-timeout, где вы можете указать продолжительность в секундах. Если у вас есть версия cURL 7.32.0 или более поздняя, вы также можете указать продолжительность в виде десятичных значений.
Указанное значение задает максимальную продолжительность ожидания ответа от удаленного сервера.
Ниже приведен пример использования флага —connect-timeout:
curl --connect-timeout 4.2 https://andreyex.ru
Использование «4.2» вместе с флагом —connect-timeout означает, что cURL попытается подключиться к «andreyex.ru», и если это займет более 4,2 секунд, соединение будет прервано.
Флаг —max-time используется, когда вы выполняете несколько операций в пакете. Этот флаг задает продолжительность всей операции — например, скачивание большого файла. Поэтому, если операция, например загрузка файла, занимает больше времени, чем указанное время, операция будет прекращена.
$ curl --max-time 20 https://github.com/aristocratos/btop/releases/download/v1.2.3/btop-aarch64-linux-musl.tbz
В этом примере использования cURL будет загружен файл. Когда общее время «подключения к серверу» + «время загрузки файла» превысит указанные здесь 20 секунд, загрузка будет прекращена.
В этом случае размер файла слишком мал, чтобы загрузка заняла более 20 секунд, поэтому команда будет выполнена успешно.
В этой статье рассказывается, как установить максимальную продолжительность (тайм-аут) либо для времени подключения к удаленному серверу, либо для тайм-аута для всей сетевой операции.
Если вам интересно узнать больше о cURL, мы рассмотрели 5 основных примеров использования команды cURL.