我正在使用jsch
连接到sftp服务器并下载文件。
我的文件大小为4.4MB。
错误为received message is too long
。
可以下载的文件大小的最大限制是多少?
是否有任何配置可以更改最大尺寸限制?
继承人我是如何联系的 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个常见帧
谢谢, 苏尼
答案 0 :(得分:3)
我刚刚遇到这个问题,发现我的shell启动脚本破坏了我的sftp会话。
来自http://www.snailbook.com/faq/sftp-corruption.auto.html
“为了使其正常工作,SSH会话必须”干净“ - 也就是说,它必须只包含程序在任何一端传输的信息。但是经常发生的事情是是服务器上的系统或每用户shell启动文件中的语句(.bashrc,.profile,/ etc / csh.cshrc,.login等),它们在登录时输出文本消息,供人类阅读(比如命运,回声“你好!”等。这样的代码应该只在交互式登录时产生输出,当标准输入附有tty时。如果它没有进行这个测试,它会将这些文本消息插入它们不属于:在这种情况下,污染scp2 / sftp和sftp-server之间的协议流。文本的前四个字节被解释为一个32位的数据包长度,这通常是一个非常大的数字,激发了上面的错误消息。“
一种可能的解决方案是编辑启动脚本。
答案 1 :(得分:-1)
在登录机器期间,它会返回一些文本。如果那些返回的字符串更多sftp会给出错误。
尝试重置您的个人资料文件(.bashrc或.cshrc)或对个人资料档案中的所有回复进行评论。
对我而言,它有效。