此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 Spring Integration 6.5.1! |
远程文件信息
从 5.2 版开始,FtpStreamingMessageSource
(FTP 流式入站通道适配器),FtpInboundFileSynchronizingMessageSource
(FTP 入站通道适配器)和 “read”命令FtpOutboundGateway
(FTP 出站网关)在消息中提供其他标头以生成有关远程文件的信息:
-
FileHeaders.REMOTE_HOST_PORT
- 文件传输作期间远程会话已连接的 host:port 对; -
FileHeaders.REMOTE_DIRECTORY
- 已执行作的远程目录; -
FileHeaders.REMOTE_FILE
- 远程文件名;仅适用于单文件作。
由于FtpInboundFileSynchronizingMessageSource
不会针对远程文件生成消息,但使用本地副本,AbstractInboundFileSynchronizer
将有关远程文件的信息存储在MetadataStore
(可以在外部配置)的 URI 样式 (protocol://host:port/remoteDirectory#remoteFileName
) 在同步作期间。
此元数据由FtpInboundFileSynchronizingMessageSource
轮询本地文件时。
删除本地文件时,建议删除其元数据条目。
这AbstractInboundFileSynchronizer
提供一个removeRemoteFileMetadata()
回调。
此外,还有一个setMetadataStorePrefix()
用于元数据键。
建议将此前缀与MetadataStore
-基于FileListFilter
实现,当相同时MetadataStore
instance 在这些组件之间共享,以避免条目覆盖,因为 filter 和AbstractInboundFileSynchronizer
对元数据条目键使用相同的本地文件名。