2013-03-22 3 views
1

Я пытаюсь загрузить файл с SFTP-сервера на свой локальный компьютер с помощью JSch. Он загружает только 16371 байт данных независимо от размера файла и заканчивает передачу. Это не исключение. Если файл меньше 16371 байт, он передается с достаточной степенью точности, но для любого более крупного файла передача приводит к поврежденному файлу.JSch SFTP file загрузить

+1

Я думаю, вам нужно будет здесь показать код ... – Lucas

+0

Я просто создал объект ChannelSftp и назвал метод get. Он отлично работает с меньшими файлами, но останавливается после передачи 16371 байт. – user1544745

+0

можете ли вы открыть уровень журнала на объекте JSch и посмотреть, что-то выскочит? – Lucas

ответ

0

У меня была такая же проблема со специальным сервером sftp. Моим уникальным решением было использование LFTP, которое представляет собой команду linux для автоматизации задач SFTP. Если у вас есть среда Linux, это очень полезно.

Пример в PHP: $ command = set net: timeout 30; lcd $ directorioDestino; cd/Usr/companies/cdrusr357901/CallCenterRecords /; mget {$ prefijoArchivosAuris} *; bye lftp -u {$ this-> user}, {$ this-> password} -e '$ command' sftp: // {$ this-> host}

1

На самом деле мне удалось решить эту проблему. Я заменил:

SftpProgressMonitor monitor = new MySftpProgressMonitor(); 
    channelSftp.get(sourceFile, destFile, monitor); 

с:

channelSftp.get(sourceFile, destFile); 

После удаления прогресса контроля передачи была sucesfull. Я думаю, это ошибка внутри Jsch.

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