Поэтому я использую phpseclib, который загружает 50 МБ-файл через sftp примерно через 45 секунд. Который быстрый по сравнению с ssh2_scp_recv(), который занимает 90 + секунд, но медленный по сравнению с моим sftp-клиентом (filezilla), который занимает 10 секунд макс.Способы ускорения работы phpcllib sftp получить для скачивания удаленный файл
Мой вопрос: что я могу сделать, чтобы ускорить загрузку файлов через sftp, кроме включения расширений mcrypt, gmp и bcmath, которые я уже сделал?
Я запускаю PHP 5.5 в Windows 7 и получаю те же результаты при использовании либо cli, либо browser/apache, и используя sftp-> get для загрузки файла в целом или загрузки файла в куски различных размеры.
Источник:
set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib');
require 'phpseclib/Net/SFTP.php';
$sftp = new Net_SFTP($host, $port, $timeout);
$sftp->login($user, $password);
$sftp->get($remoteFile, $localFile);
При сравнении phpseclib с filezilla вы принимаете во внимание время, необходимое файлу для подключения и выполнения каталогов? Единственный способ ускорить это, о котором я знаю, - это иметь постоянную связь, которая не является отличной идеей по очевидным причинам. – Scopey
Я не ожидаю, что phpseclib будет таким же быстрым или быстрым, чем выделенный клиент, но имейте в виду, что я сравнивал только время, необходимое для фактической загрузки файла, а не настройки соединения и входа в систему (что принимает менее секунды). phpseclib работает как шарм, и я просто ищу способы улучшить скорость его загрузки :) –
У вас установлен mcrypt? Даже чистые PHP-версии phpeclib для RC4/AES/и т. Д. Являются одними из самых быстрых реализаций pure-PHP вокруг него, не содержат факел для mcrypt, который скомпилирован C. – neubert