在 ftp 出站网关中执行 mput 操作后如何获取文件列表?
How do I get a list of files after an mput operation in ftp outbound gateway?
我设法将文件从本地传输到远程 ftp。现在,我想要所涉及的路径和文件的列表,以便我可以对其应用逻辑,例如将新行插入数据库。据说
The message payload resulting from an mput operation is a List object (that is, a List of remote file paths resulting from the transfer).
这是我从 here
得到的
这是我的代码,感谢 Gary Russell 提供了我之前问题的答案
@Bean(value = "localToFtp")
public IntegrationFlow fileToFile() {
IntegrationFlow flow = IntegrationFlows
.fromSupplier(() -> "/local",
e -> e.poller(Pollers.fixedDelay(Duration.ofSeconds(5))))
.handle(Sftp.outboundGateway(awasDelegatingSessionFactory(),
AbstractRemoteFileOutboundGateway.Command.MPUT,
null)
.autoCreateDirectory(true)
.options(AbstractRemoteFileOutboundGateway.Option.RECURSIVE)
.remoteDirectoryExpression(REMOTE_DIR))
.channel("nullChannel")
.get();
return flow;
}
提前致谢。
您正在丢弃网关返回的文件名列表,方法是将其发送到 nullChannel
。
在此处添加另一个 .handle()
方法 - 消息负载是远程路径列表。
我设法将文件从本地传输到远程 ftp。现在,我想要所涉及的路径和文件的列表,以便我可以对其应用逻辑,例如将新行插入数据库。据说
The message payload resulting from an mput operation is a List object (that is, a List of remote file paths resulting from the transfer).
这是我从 here
得到的这是我的代码,感谢 Gary Russell 提供了我之前问题的答案
@Bean(value = "localToFtp")
public IntegrationFlow fileToFile() {
IntegrationFlow flow = IntegrationFlows
.fromSupplier(() -> "/local",
e -> e.poller(Pollers.fixedDelay(Duration.ofSeconds(5))))
.handle(Sftp.outboundGateway(awasDelegatingSessionFactory(),
AbstractRemoteFileOutboundGateway.Command.MPUT,
null)
.autoCreateDirectory(true)
.options(AbstractRemoteFileOutboundGateway.Option.RECURSIVE)
.remoteDirectoryExpression(REMOTE_DIR))
.channel("nullChannel")
.get();
return flow;
}
提前致谢。
您正在丢弃网关返回的文件名列表,方法是将其发送到 nullChannel
。
在此处添加另一个 .handle()
方法 - 消息负载是远程路径列表。