当前位置: 首页 > 面试题库 >

通过JSch的SFTP引发错误4:失败

樊俊悟
2023-03-14
问题内容

尝试将文件从Windows SFTP传输到Unix服务器时,我遇到一个特殊的问题。错误“堆栈跟踪”为-

4: Failure
    at com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2846)
    at com.jcraft.jsch.ChannelSftp.checkStatus(ChannelSftp.java:2459)
    at com.jcraft.jsch.ChannelSftp._sendCLOSE(ChannelSftp.java:2465)
    at com.jcraft.jsch.ChannelSftp._put(ChannelSftp.java:683)
    at com.jcraft.jsch.ChannelSftp.put(ChannelSftp.java:475)
    at com.jcraft.jsch.ChannelSftp.put(ChannelSftp.java:365)

我在其他论坛上进行了大量搜索,但无法找到根本原因。我还观察到另一件事-我尝试使用SFTP的文件名是 .xml,当我将其更改为
.XML时,SFTP是“成功的”。很奇怪,无法确定问题。我正在尝试使用JSch Java API。但是我在尝试WinSCP前端时也遇到了同样的问题。


问题答案:

这是对OpenSSH的SFTP服务器共同为许多不同的原因返回码4(失败),没有提供任何细节。

您将必须检查SFTP服务器日志以查找更多信息。

尽管最常见的原因是缺少可用磁盘或用户配额空间,但是通常可以通过创建大小为零的文件来识别它们。



 类似资料:
  • 我试图通过sftp协议使用JSch库读取文件: 问题是我在代码的最后一行遇到以下异常: 我在谷歌上搜索了一下,发现这个错误可能来自sftp服务器,通常发生在上传过程中(空间不足等)。因此,我在sftp服务器上设置了日志记录(调试级别),只看到以下内容: 没有别的了。我不知道我还能调查什么,因为我从双方都获得了所有相关日志:(远程机器是一台带有OpenSSH的Debian。

  • 在apache commons net ftpclient中,有ftpclient.printWorkingDirectory()来获取当前目录的字符串。 如何使用jsch sftp客户机实现同样的功能?有一个名为realpath(String)的方法,但它似乎不对,我无法使其工作。

  • 我要连接的代码: 命令行版本的相同的程序,我可以运行没有任何例外!另一个来自JCraft[link]http://www.jcraft.com/jsch/examples/SFTP.java.html网站的SFTP示例运行良好。

  • 我一直在尝试通过云功能发送消息推送。以下是Firebase:https://github.com/firebase/functions-samples/blob/master/fcm-notifications/functions/index.js中有关如何执行此操作的指南 这是我的有效载荷 现在,这引发了一个错误,当我检查日志时,以下是错误: 如果我删除content_available:tru

  • 为SFTP连接运行具有以下设置的SSHD: 现在,使用JSch连接到sshd并连接一个“sftp”通道,我将得到以下异常: com.jcraft.jsch.jschException:无法发送通道请求 这里是我的Java代码(非常类似于表单JSch网站) 如果我在sshd配置中禁用-line,那么一切工作都很好。但是我不能在以后的生产中更改这条线(它已经存在了)。 但使用WinSCP,即使在以下位

  • 问题内容: 我的目的是连接到位于防火墙后面的服务器(主机)。我可以通过连接到网络中的另一台服务器(隧道)然后通过SSH到该服务器来访问此服务器。但是,我无法通过JSch实现相同的方案。 我无法为此编写以下代码。如果我在这里做任何愚蠢的事情,请告诉我。 上面的代码在行中给出了以下异常。 问题答案: jsch上的代理设置允许您连接到远程端上 正在运行的 代理服务器。一个在远程端将 不 被视为一个代理。