Spring 集成 Java DSL : 创建 sftp 出站适配器

Spring integration Java DSL : creating sftp outbound adapter

我想使用 DSL 创建流程。流量来自通道并发送到 sftp outbound adapter。如何发送文件模式? REPLACE

IntegrationFlows.from(uploadChannel())
                .handle(Sftp.outboundAdapter(sessionfactory())
                                .charset(Charset.forName("UTF-8"))
                                .remoteFileSeparator("\")
                                .remoteDirectory(beaconSendProperties.getFtpLocation())
                                .fileNameExpression("payload.getName()")
                                .autoCreateDirectory(true)
                                .useTemporaryFileName(true)
                                .temporaryFileSuffix(".tranferring")
                                .fileNameExpression("fileNameGenerator")
                )
                .channel(uploadChannel())
                .get();

首先,outboundAdapter 之后的 .channel(uploadChannel()) 没有意义,无法访问。因为FileTransferringMessageHandler是单向的MessageHandler,没有reply转发到下游

REPLACE可以作为重载Sftp.outboundAdapter方法的第二个参数来实现:

.handle(Sftp.outboundAdapter(sessionfactory(), FileExistsMode.REPLACE)