远程文件信息
从5.2版本开始,FtpStreamingMessageSource
(FTP 流式入站通道适配器)、FtpInboundFileSynchronizingMessageSource
(FTP 入站通道适配器)和FtpOutboundGateway
(FTP 出站网关)的“读取”命令会在生成的报文中提供额外的头部信息,其中包含远程文件的信息。
-
FileHeaders.REMOTE_HOST_PORT
- 远程会话在文件传输过程中连接到的主机:端口对; -
FileHeaders.REMOTE_DIRECTORY
- 执行操作的远程目录; -
FileHeaders.REMOTE_FILE
- 远程文件名;仅适用于单文件操作。
由于FtpInboundFileSynchronizingMessageSource
不会针对远程文件生成消息,而是使用本地副本,因此AbstractInboundFileSynchronizer
在同步操作期间会以URI样式(protocol://host:port/remoteDirectory#remoteFileName
)将远程文件信息存储在MetadataStore
(可以在外部配置)中。FtpInboundFileSynchronizingMessageSource
在轮询本地文件时会检索此元数据。当本地文件被删除时,建议删除其元数据条目。AbstractInboundFileSynchronizer
为此目的提供了removeRemoteFileMetadata()
回调。此外,还有一个setMetadataStorePrefix()
用于元数据键。建议此前缀与基于MetadataStore
的FileListFilter
实现中使用的前缀不同,当这些组件之间共享相同的MetadataStore
实例时,可以避免条目覆盖,因为过滤器和AbstractInboundFileSynchronizer
都使用相同的本地文件名作为元数据条目键。