[CURL] Медленная загрузка (upload)

Discussion in 'PHP' started by qw1mb1, 25 Feb 2015.

  1. qw1mb1

    qw1mb1 Member

    Joined:
    8 Feb 2013
    Messages:
    113
    Likes Received:
    16
    Reputations:
    8
    Собственно, проблема описана в названии темы: для загрузки файла на сервер через браузер необходимо ~10 секунд, в то время как через CURL аналогичный файл загружается ~полтора минуты. Как можно заставить CURL работать быстрее? У кого какие мысли по данному поводу?
     
  2. waik

    waik Elder - Старейшина

    Joined:
    2 Nov 2008
    Messages:
    405
    Likes Received:
    163
    Reputations:
    12
    Взять да написать код более оптимально. Помог ?

    Хоть бы код свой показал и объяснил чего и куда загружаешь.
     
  3. qw1mb1

    qw1mb1 Member

    Joined:
    8 Feb 2013
    Messages:
    113
    Likes Received:
    16
    Reputations:
    8
    код простейший:
    PHP:
    $data = array('video_file'=>'@'.realpath("videos/1.mp4"));
    $curl curl_init();
    curl_setopt($curlCURLOPT_URL"https://site.com/upload.php");
    curl_setopt($curlCURLOPT_RETURNTRANSFER1);
    curl_setopt($curlCURLOPT_SSL_VERIFYPEERfalse); 
    curl_setopt($curlCURLOPT_POST1);
    curl_setopt($curlCURLOPT_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 не могут "выжать" максимальную скорость?
     
    #3 qw1mb1, 25 Feb 2015
    Last edited: 25 Feb 2015
  4. qaz

    qaz Elder - Старейшина

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    ну ты бля сравнил, браузер и курл, твой курл может перед отправкой загружает файл в память, полностью или частично, это уже нужно смотреть исходники пхп, а браузер через файл маппинг, что значительно быстрее, в любом случае ты явно не читал доки, там есть опции для роботы с файлами, CURLOPT_INFILESIZE, CURLOPT_UPLOAD, который наверно не просто так написали... подставляй - пробуй
     
  5. qw1mb1

    qw1mb1 Member

    Joined:
    8 Feb 2013
    Messages:
    113
    Likes Received:
    16
    Reputations:
    8
    да при чём тут маппинг? я же написал:
     
  6. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    cURL будешь пересобирать ради возможного увеличения скорости? Нет? Тогда пиши код самостоятельно на сокетах.
     
    _________________________