如何使用Spring Integration FTP Message Source直接将Message <string>生成到通道,而不是创建文件

时间:2017-01-02 22:07:40

标签: java spring spring-boot spring-integration

是否可以从FTP消息源读取文件并将其作为消息&lt; String&gt;直接发送到通道。将文件内容作为消息有效负载和标头中的文件名?我该怎么做?

现在,它正在将文件从FTP源写入磁盘,我不希望它这样做。然后,我必须读取磁盘,然后将其转换为消息或编写某种类型的文件源。我希望它直接从FTP源直接进入消息&lt; String&gt;。

为了解释这种情况,我有多个FTP源都作为一个流轮询到一个通道。然后,我希望该通道中的所有消息都转到JdbcOutboundGateway,以将消息写入另一个流中的DB表。但是,当它从FTP源进入通道时,消息有效负载最终只是文件路径。我希望FTP消息源不创建文件,只是消息&lt; String&gt;放入频道。

1 个答案:

答案 0 :(得分:3)

您是否查看了FTP Streaming Inbound Channel Adapter文档?

  

流式入站通道适配器在4.3版中引入。   此适配器生成带有InputStream类型的有效负载的消息,   允许在不写入本地文件系统的情况下获取文件。

我认为这正是你想要的。您最终会在频道中使用Message<InputStream>,但始终可以使用StreamTransformer等消息转换器将这些转换为Message<String>