SFTP - 无法覆盖文件 - “从远程端收到 EOF”

SFTP - 无法覆盖文件 - “从远程端收到 EOF”

我正在与一位客户合作,解决他们在尝试覆盖/“PUT”文件到我们的 SFTP 站点时遇到的错误。当根目录为空并且他们尝试上传文件时没有问题,但当他们尝试覆盖现有文件时就会发生错误。他们在 Java Caps 中尝试 put 命令时收到的错误是:

错误为:在 [PUT()] 中执行数据传输操作时出现批量 SFTP eWay 错误,消息=[从远程端收到 EOF [未知原因]]。|#]

当他们使用 WinSCP 或 FileZilla 放置文件时,它会顺利覆盖,没有任何错误。我们尝试过:

  • 多个不同的文件
  • 检查其 SFTP 用户权限
  • 授予“每个人”对 Windows 中用户根目录的完全访问权限
  • 重新创建用户账户
  • 确保没有其他进程正在使用/锁定正在覆盖的文件

我们正在使用 Cerberus Professional FTP 服务器软件。还有什么想法我们可以尝试吗?

答案1

我无法在这个论坛发表评论,因此我将尝试回答:

  • 他们在 FTP 中使用的用户名和 WinSCP/Filezilla 使用的用户名是否不同?
  • FTP 和 WinSCP/Filezilla 的目标目标目录是否相同?
  • 为了完整起见,在两种情况下传输的是同一个文件吗?
  • 目标文件及其目录的文件权限和所有者/组是什么?
  • 为什么这个标签为“java”?
  • 目标机器的 Solaris 版本是多少?(由于“sun”标签而询问)
  • WinSCP/Filezilla 的测试是否从与 FTP 相同的客户端机器完成?
  • 文件末尾是否有行终止符?

抱歉问了这么多显而易见的问题,但由于它不起作用,所以需要涵盖所有基础。

[编辑]
回应您的评论,评论中的最后一个答案是“否”,这似乎是在回答“文件末尾是否有行终止符?”
所以,请尝试在文件末尾添加一个“空白行”,以便最后一个字符成为行终止符。原因:这很奇怪,但有时我似乎发现文件末尾没有行终止符也存在类似的问题。就好像接收端的代码需要行终止符才能完成文件。

相关内容