Как повесить timeout на скачивание файла по url?
Делаю запрос на получение изображения из другого сервиса на PHP. Иногда выпадает 502 ошибка, занимает больше 5 секунд запрос такой. Нужно ограничить время запроса. Как это сделать? Пробовал:
через file_get_contents
$url = "http://....";
$res = file_get_contents($url, 0, stream_context_create(["http"=>["timeout"=>2]]));
через curl:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT_MS, 1000);
curl_setopt($ch, CURLOPT_TIMEOUT_MS, 1500);
$result = curl_exec($ch);
curl_close($ch);
Но периодически запросы выполняются 5 - 10 сек.