1

Мне нужно использовать cURL для загрузки некоторых файлов на SFTP-сервер, он должен использовать cURL, потому что позже я буду использовать cURL_multi и т.д. Для одновременной передачи файлов (если кто-то не знает библиотеку командной строки, которая поддерживает FTP, SFTP с использованием пароля, SFTP используя ключ, и поддерживает до 10 одновременных передач).

У меня проблема в том, что cURL работает мучительно медленно. При загрузке с помощью стандартного SFTP-клиента в Ubuntu 12.04 я получаю около 70 Кбит / с (это нормально, это просто скорость сервера), но при использовании cURL это около 35 Кбит / с, что вдвое меньше скорости SFTP:/

Кто-нибудь знает какие-либо способы, которыми я могу ускорить cURL, желательно без необходимости перекомпилировать cURL, но я буду знать, если мне это нужно.

Вот команда для SFTP:

/usr/bin/sftp -oProtocol=2 -oIdentityFile=/path/to/key.pri -oPort=5000 -oStrictHostKeyChecking=no username@thedomain.com

тогда просто put filename.wav когда он подключится ...

и с CURL:

curl -v -u username: --key /path/to/key.pri --pubkey /path/to/key.pub -T /path/to/filename.wav sftp://thedomain.com:5000/folder/TEST/filename.wav --insecure

Это информация о версии cURL:

curl 7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 libssh2/1.2.8 librtmp/2.3 Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtmp rtsp scp sftp smtp smtps telnet tftp Features: GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP

Конечно, это не может быть так медленно для всех?

1 ответ1

1

К сожалению, это известная проблема с curl. Похоже, что это может быть смягчено путем перекомпиляции с большим CURL_MAX_WRITE_SIZE ; увидеть эту запись из их списка рассылки.

Поскольку в конце вы пытаетесь добиться мультизагрузки, вам все же может быть удастся заполнить исходящий канал SFTP поверх curl, что в любом случае даст вам максимально возможную пропускную способность :)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .