我正在使用 Alpakka 将单个文件上传到 SFTP 服务器,但是一旦文件上传并且我得到了成功响应,Sink 保持打开状态,我该如何排空它?
我从这个开始:
val sink = Sftp.toPath(path, settings, false)
val source = Source.single(ByteString(data))
source
.viaMat(KillSwitches.single)(Keep.right)
.toMat(sink)(Keep.both).run()
.map(_.wasSuccessful)
但这最终永远不会离开地图步骤。我试图添加一个killswitch,但这似乎没有效果(无论是关闭还是中止):
val sink = Sftp.toPath(path, settings, false)
val source = Source.single(ByteString(data))
val (killswitch, result) = source
.viaMat(KillSwitches.single)(Keep.right)
.toMat(sink)(Keep.both).run()
result.map {
killswitch.shutdown()
_.wasSuccessful
}
我在做一些根本错误的事情吗?我只想要一个结果。
编辑发送到的设置toPath
:
SftpSettings(InetAddress.getByName(host))
.withCredentials(FtpCredentials.create(amexUsername, amexPassword))
.withStrictHostKeyChecking(false)