是否可以从FTP消息源读取文件并将其作为消息< String>直接发送到通道。将文件内容作为消息有效负载和标头中的文件名?我该怎么做?
现在,它正在将文件从FTP源写入磁盘,我不希望它这样做。然后,我必须读取磁盘,然后将其转换为消息或编写某种类型的文件源。我希望它直接从FTP源直接进入消息< String>。
为了解释这种情况,我有多个FTP源都作为一个流轮询到一个通道。然后,我希望该通道中的所有消息都转到JdbcOutboundGateway,以将消息写入另一个流中的DB表。但是,当它从FTP源进入通道时,消息有效负载最终只是文件路径。我希望FTP消息源不创建文件,只是消息< String>放入频道。
答案 0 :(得分:3)
您是否查看了FTP Streaming Inbound Channel Adapter文档?
流式入站通道适配器在4.3版中引入。 此适配器生成带有
InputStream
类型的有效负载的消息, 允许在不写入本地文件系统的情况下获取文件。
我认为这正是你想要的。您最终会在频道中使用Message<InputStream>
,但始终可以使用StreamTransformer等消息转换器将这些转换为Message<String>
。