Как установить тайм-аут в cURL

cURL - это популярный инструмент для загрузки файлов и данных с удаленных веб-сайтов. Он предоставляет массу полезных опций, включая загрузку, требующую аутентификации пользователя. Вы даже можете использовать cURL в сценариях оболочки и cronjobs для автоматизации передачи файлов. Любой вид передачи файлов требует, чтобы инструмент загрузки подключался к удаленному серверу и передавал данные по частям.

Иногда в этом процессе могут возникать задержки по разным причинам. Это может быть связано с тем, что cURL не может установить соединение с удаленным сервером, передача файла происходит слишком медленно из-за проблем с сетью, или загрузка файла занимает слишком много времени из-за его размера. В таких случаях полезно указать значение таймаута, чтобы cURL автоматически завершал передачу файла через определенное время. В противном случае cURL будет продолжать ждать вечно, что нежелательно. В этой статье мы узнаем, как установить тайм-аут в cURL.

CURL

Как установить тайм-аут в cURL

cURL позволяет задавать два вида таймаутов - один для установления соединения, а другой для всего процесса передачи файлов.

1. Установка таймаута соединения

Иногда cURL может быть не в состоянии подключиться к удаленному серверу для загрузки файлов. Это может быть вызвано проблемами с сервером или проблемами, связанными с сетью. Тем не менее, cURL будет продолжать ждать установления соединения в течение длительного времени, что является излишним. Поэтому вы можете указать таймаут для процесса соединения, чтобы, если cURL не сможет подключиться в течение указанного времени, он сам завершил процесс. Это можно сделать с помощью опции -connect-timeout. Вот ее синтаксис.

Вот простой пример для указания таймаута соединения в 5 секунд.

Вы можете указать таймаут соединения в секундах или миллисекундах. По умолчанию, указанная длительность принимается равной секундам. Если вы хотите указать длительность 5 секунд и 25 миллисекунд, то вот команда для этого.

2. Установка максимального таймаута

Также вы можете установить максимальное значение таймаута для работы cURL. Это установит максимальную продолжительность всей операции, включающей установление соединения и передачу данных. Если вы передаете несколько файлов, он будет включать продолжительность соединения и загрузки всех файлов, а не только одного. Короче говоря, он устанавливает продолжительность от начала до конца выполнения команды. Вот синтаксис для этого.

Вот пример установки максимальной продолжительности загрузки файла в 20 секунд.

В приведенном выше примере, если общее время соединения с сервером и загрузки файла превысит 20 секунд, команда cURL будет автоматически завершена.

Заключение

В этой статье мы узнали, как установить таймаут в cURL. Это очень полезно при неожиданных задержках при удаленном подключении и передаче файлов. Она также позволяет автоматически завершать команды cURL, независимо от того, запускаете ли вы их вручную из терминала или из сценария оболочки.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий