Собственно, проблема описана в названии темы: для загрузки файла на сервер через браузер необходимо ~10 секунд, в то время как через CURL аналогичный файл загружается ~полтора минуты. Как можно заставить CURL работать быстрее? У кого какие мысли по данному поводу?
Взять да написать код более оптимально. Помог ? Хоть бы код свой показал и объяснил чего и куда загружаешь.
код простейший: PHP: $data = array('video_file'=>'@'.realpath("videos/1.mp4")); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, "https://site.com/upload.php"); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); $s = curl_exec($curl); curl_close($curl); Проблема в том, что после curl_exec я вызываю curl_getinfo и получаю информацию о том, что средняя скорость аплоада ~600kb/s, и это на сервере с пропускной способностью 1 GBit/s (!). Сервер-приёмник скорость не урезает, проверено через браузер. UPD Скрипт должен работать из под винды, соответственно тесты проходят на Windows 7. Так же пробовал перенести аплоад файлов во внешний EXE-шник на Delphi с загрузкой через IdHTTP - результат тот же. Конкретно вопрос в том, почему ни CURL ни Indy не могут "выжать" максимальную скорость?
ну ты бля сравнил, браузер и курл, твой курл может перед отправкой загружает файл в память, полностью или частично, это уже нужно смотреть исходники пхп, а браузер через файл маппинг, что значительно быстрее, в любом случае ты явно не читал доки, там есть опции для роботы с файлами, CURLOPT_INFILESIZE, CURLOPT_UPLOAD, который наверно не просто так написали... подставляй - пробуй
cURL будешь пересобирать ради возможного увеличения скорости? Нет? Тогда пиши код самостоятельно на сокетах.