You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Scala的akka.stream.alpakka.ftp列出SFTP文件?遇传输错误

SFTP列出文件时出现Broken transport; encountered EOF错误

代码片段

val ftpApi: FtpApi[SSHClient, SftpSettings]

val futureResult = ftpApi.ls(basePath = path, connectionSettings = settings)

错误日志

11:53:36.875 [sshj-Reader-/200.13.144.60:181] DEBUG net.schmizz.sshj.transport.TransportImpl - Setting active service to null-service
11:53:36.875 [sshj-Reader-/200.13.144.60:181] DEBUG net.schmizz.concurrent.Promise - Setting <<transport close>> to `SOME`
11:53:36.875 [sshj-Reader-/200.13.144.60:181] DEBUG net.schmizz.sshj.transport.Reader - Stopping
[ERROR] [02/27/2023 11:53:36.876] [default-akka.actor.default-blocking-io-dispatcher-21] [akka://default/system/Materializers/StreamSupervisor-0/flow-0-2-sFtpBrowserSource] Error during postStop in [akka.stream.alpakka.ftp.impl.FtpBrowserGraphStage$$anon$1-sFtpBrowserSource]: Broken transport; encountered EOF
net.schmizz.sshj.connection.ConnectionException: Broken transport; encountered EOF
    at net.schmizz.sshj.connection.ConnectionException$1.chain(ConnectionException.java:32)
    at net.schmizz.sshj.connection.ConnectionException$1.chain(ConnectionException.java:26)
    at net.schmizz.concurrent.Promise.deliverError(Promise.java:95)
    at net.schmizz.concurrent.Event.deliverError(Event.java:74)
    at net.schmizz.concurrent.ErrorDeliveryUtil.alertEvents(ErrorDeliveryUtil.java:34)
    at net.schmizz.sshj.connection.channel.AbstractChannel.notifyError(AbstractChannel.java:239)
    at net.schmizz.sshj.connection.channel.direct.SessionChannel.notifyError(SessionChannel.java:229)
    at net.schmizz.sshj.common.ErrorNotifiable$Util.alertAll(ErrorNotifiable.java:35)
    at net.schmizz.sshj.connection.ConnectionImpl.notifyError(ConnectionImpl.java:261)
    at net.schmizz.sshj.transport.TransportImpl.die(TransportImpl.java:588)
    at net.schmizz.sshj.transport.Reader.run(Reader.java:66)
Caused by: net.schmizz.sshj.transport.TransportException: Broken transport; encountered EOF
    at net.schmizz.sshj.transport.Reader.run(Reader.java:58)

排查与解决方向

  • 验证连接配置准确性:检查path是否为服务器上存在的有效路径,SftpSettings中的主机地址、端口、认证信息(用户名/密码或密钥)是否正确,确认本地到服务器200.13.144.60:181端口的网络连通性。
  • 检查服务器端状态:确认SFTP服务正常运行,当前用户对目标路径有读取权限,服务器未设置过短的连接超时时间,没有主动中断连接的规则。
  • 核对依赖版本兼容性:确保Alpakka FTP库与依赖的SSHJ版本匹配,版本冲突可能引发传输层异常。
  • 添加超时与重试机制:在SftpSettings中配置合理的连接超时、操作超时参数,为ls操作添加重试逻辑,应对临时连接中断问题。
  • 开启详细日志:升级SSHJ日志级别至TRACE,查看连接建立、认证、目录访问的完整流程,定位EOF出现的具体环节。

内容的提问来源于stack exchange,提问作者rEVOLution

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 09:15:12