sftp – com.jcraft.jsch.JSchException:4:收到的消息太长:1416128878

我正在使用jsch连接到sftp服务器并下载文件.

我的文件大小是4.4MB.

收到的错误信息太长.

可以下载的文件大小的最大限制是多少?

是否有任何配置可以更改最大大小限制?

继承人我是如何联系的
    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
    在com.jcraft.jsch.ChannelSftp.start(ChannelSftp.java:315)〜[jsch-0.1.50.jar:na]
    在com.jcraft.jsch.Channel.connect(Channel.java:152)〜[jsch-0.1.50.jar:na]
    在com.jcraft.jsch.Channel.connect(Channel.java:145)〜[jsch-0.1.50.jar:na]
    at com.scheduler.DataDiaryDataPullJob.downloadSurveyFiles(DataDiaryDataPullJob.java:152)[classes /:na]
    …省略了2个常用帧
引起:com.jcraft.jsch.SftpException:收到的消息太长:1416128878
    在com.jcraft.jsch.ChannelSftp.start(ChannelSftp.java:265)〜[jsch-0.1.50.jar:na]
    …省略了5个常见帧

谢谢,
苏尼尔

最佳答案 我刚刚遇到这个问题,发现我的shell启动脚本破坏了我的sftp会话.

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

“为了使其工作,SSH会话必须是”干净的“ – 也就是说,它必须只包含程序在任何一端传输的信息.然而,经常发生的是,系统中都有语句服务器上的每个用户shell启动文件(.bashrc,.profile,/ etc / csh.cshrc,.login等),它们在登录时输出文本消息,供人类阅读(如fortune,echo“嗨”这些代码只应在交互式登录时产生输出,当标准输入附有tty时.如果没有进行此测试,它会将这些文本消息插入不属于的地方:在这种情况下,污染scp2 / sftp和sftp-server之间的协议流.文本的前四个字节被解释为一个32位的数据包长度,通常是一个非常大的数字,引发上面的错误信息.“

一种可能的解决方案是编辑启动脚本.

点赞