Spring integration Spring integration FTP后如何移动文件?
我正在使用Spring集成来FTP文件。在处理完该文件后,我想将该文件从FTP目录移动到FTP服务器上的存档目录。我该怎么做 我认为解决方案可能涉及用文件名丰富方法头,但它看起来不像流通道适配器提供的那样,因为它只是一个流,而不是一个文件/路径Spring integration Spring integration FTP后如何移动文件?,spring-integration,Spring Integration,我正在使用Spring集成来FTP文件。在处理完该文件后,我想将该文件从FTP目录移动到FTP服务器上的存档目录。我该怎么做 我认为解决方案可能涉及用文件名丰富方法头,但它看起来不像流通道适配器提供的那样,因为它只是一个流,而不是一个文件/路径 <int-ftp:inbound-streaming-channel-adapter auto-startup="true" id="ftpListener2" channel="ftpChannel" session-factor
<int-ftp:inbound-streaming-channel-adapter
auto-startup="true" id="ftpListener2" channel="ftpChannel"
session-factory="ftpSessionFactory" remote-directory="/data/crp/prd/ald/01/stuff/archive"
filename-pattern="ADX_I.2017083100100.tar.gz">
<integration:poller fixed-rate="5000"
max-messages-per-poll="-1" />
</int-ftp:inbound-streaming-channel-adapter>
流通道适配器返回的消息如下所示:
return getMessageBuilderFactory()
.withPayload(session.readRaw(remotePath))
.setHeader(IntegrationMessageHeaderAccessor.CLOSEABLE_RESOURCE, session)
.setHeader(FileHeaders.REMOTE_DIRECTORY, file.getRemoteDirectory())
.setHeader(FileHeaders.REMOTE_FILE, file.getFilename())
.setHeader(FileHeaders.REMOTE_FILE_INFO,
this.fileInfoJson ? file.toJson() : file)
.build();
因此,您拥有与远程文件相关的所有信息
因此,您完全可以使用请求消息头中的信息来执行MV命令。您认为java方法比xml更容易实现这一点吗?到目前为止,我所做的一切都是用xml做的,但我愿意用java.yes定义bean!那是可以做到的!参见JavaDSL方法:我看到JavaDSL相当于我的FTP代码返回一个IntegrationFlow。我仍然有点困惑,你的代码在哪里适合这个。该示例返回一个IntegrationFlow,但返回一个MessageBuilderFactory???我将向您展示框架中的代码:。作为确认,您确实拥有下游消息中的所有信息。我不会向您展示目标解决方案。这已超出StackOverflow范围。这里没有人会为你写代码。我想我现在明白了。谢谢你的例子。