我使用Spring Integration来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>
答案 0 :(得分:1)
从流媒体通道适配器返回的消息如下:
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();
因此,您拥有与远程文件相关的所有信息。
因此,您绝对可以使用<int-ftp:outbound-gateway>
在请求消息的标头中使用该信息执行MV
命令。