远程文件信息
从版本 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()
callback 来实现此目的。
此外,还有一个setMetadataStorePrefix()
用于元数据键。
建议将此前缀与MetadataStore
-基于FileListFilter
implementations,当相同的MetadataStore
instance 在这些组件之间共享,以避免条目覆盖,因为 filter 和AbstractInboundFileSynchronizer
对元数据条目键使用相同的本地文件名。