Spring integration Spring integration 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

我正在使用Spring集成来FTP文件。在处理完该文件后,我想将该文件从FTP目录移动到FTP服务器上的存档目录。我该怎么做

我认为解决方案可能涉及用文件名丰富方法头,但它看起来不像流通道适配器提供的那样,因为它只是一个流,而不是一个文件/路径

<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范围。这里没有人会为你写代码。我想我现在明白了。谢谢你的例子。