2015-02-20 3 views
0

Я использую phpseclib 0.3.1 для работы с удаленным SFTP-сервером. У меня есть сценарий, который загружает обложки из SFTP, сохраняет их на моем сервере и делает обновления в базе данных.phpseclib - бесконечная загрузка

я запускаю этот скрипт для 7000 изображений и после того, как почти 10-12 минут, это выглядит как сценарий остановлен (но в конце концов я обнаружил, что сценарий вошел в бесконечный цикл)

После некоторого исследования, я нашел следующие детали:

  1. функция get($remote_file, $local_file = false) из SFTP.php вызывается для загрузки файла

  2. изображений в этой функции _get_sftp_packet() вызываются в то время как (истинный) цикл.

  3. В _get_sftp_packet() есть вызов _get_channel_packet(NET_SFTP_CHANNEL);

  4. И в _get_channel_packet() есть вызов $response = $this->_get_binary_packet();

Моя проблема, что это $ ответ пустая строка. В функции _get_sftp_packet() длина этого отклика используется как декремент, и если функция возвращает пустую строку (или длину 0) - я никогда не выйду из цикла в _get_sftp_packet()

Неужели кто-нибудь столкнулся с этой проблемой? Какое пустое средство ответа для функции _get_binary_packet()?

Буду признателен за любую помощь.

ответ

1

Возможно, это проблема с обработкой размера окна. Проблема, которая исправлена ​​некоторое время.

Вы используете 0.3.1? Последняя версия - 0,3.10. Вы походите на 5 версий.

+0

Вы были правы, после обновления до версии 0.3.10 ошибка исчезла. – Tamara

Смежные вопросы