2013-11-20 3 views
4

Я использую jsch для подключения к серверу sftp и загрузки файлов.com.jcraft.jsch.JSchException: 4: полученное сообщение слишком длинное: 1416128878

Размер файла 4,4 МБ.

Ошибка received message is too long.

Каков максимальный размер файла, который можно загрузить?

Есть ли какая-либо конфигурация, чтобы изменить максимальный размер?

heres как я подключаю session = jsch.getSession ("##", "##", 22); session.setPassword ("##"); session.setConfig («StrictHostKeyChecking», «no»); session.connect(); sftpChannel = (ChannelSftp) session.openChannel ("sftp"); sftpChannel.connect(); sftpChannel.cd ("##"); sftpChannel.lcd ("##");

и сообщение об ошибке

Ошибка при выборке ответов сервера с сервера SFTP. at com.scheduler.DataDiaryDataPullJob.main (DataDiaryDataPullJob.java:60) [classes /: na] Вызвано: com.jcraft.jsch.JSchException: 4: Полученное сообщение слишком велико: 1416128878 at com.jcraft.jsch .ChannelSftp.start (ChannelSftp.java:315) ~ [jsch-0.1.50.jar: na] at com.jcraft.jsch.Channel.connect (Channel.java:152) ~ [jsch-0.1.50.jar : na] at com.jcraft.jsch.Channel.connect (Channel.java:145) ~ [jsch-0.1.50.jar: na] at com.scheduler.DataDiaryDataPullJob.downloadSurveyFiles (DataDiaryDataPullJob.java:152) [ классы /: na] ... 2 общих кадра опущены Вызвано: com.jcraft.jsch.SftpException: полученное сообщение слишком длинное: 1416128878 at com.jcraft.jsch.ChannelSftp.start (ChannelSftp.java:265) ~ [jsch-0.1.50.jar: na] ... 5 общих рамки опущены

Спасибо, Сунило

+0

Вы можете предоставить более подробную информацию? например quoute полное сообщение об ошибке. и как вы подключаетесь/загружаетесь? – Florian

+0

вот как я подключаюсь – sunil

+0

Интересный анализ: 1416128878 (десятичный) = 5468696E (шестнадцатеричный) = тонкий (текст ASCII) Когда вы подключаетесь напрямую к терминалу $ ssh ... вы получаете ответ, содержащий «Thin»? https://stackoverflow.com/a/38897574/3301492 – Boris

ответ

3

Я просто столкнулся с этой проблемой также и обнаружил мои сценарии запуска оболочки были развращать мою SFTP сессию.

От http://www.snailbook.com/faq/sftp-corruption.auto.html

"Для того чтобы это работало, SSH сессии должны быть„чистыми“. - то есть, он должен иметь на это только информация, передаваемая по программам на обоих концах, что часто бывает, хотя есть инструкции в файлах запуска системы или для каждого пользователя на сервере (.bashrc, .profile, /etc/csh.cshrc, .login и т. д.), которые выводят текстовые сообщения при входе в систему, предназначенные для читайте люди (например, фортуна, эхо «Привет!» и т. д.). Такой код должен выдавать только выходные данные на интерактивных входах, когда к стандартным входам подключен tty. Если он не выполнит этот тест, он будет вставлять эти текстовые сообщения там, где они не принадлежат: в этом случае загрязнение потока протокола между scp2/sft p и sftp-server. Первые четыре байта текста интерпретируются как длина 32-битного пакета, который обычно будет очень большим числом, вызывая сообщение об ошибке выше. "

Одно из возможных решений будут редактирование скриптов запуска.

-1

Во время входа в системе в машину, она возвращает некоторые тексты. Если эти строки, возвращаемые более SFTP даст ошибку.

Попробуйте сбросить файл профиля (.bashrc или .cshrc) или прокомментировать все эхо-файлы из файла профиля.

Для меня это сработало.

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