遠端檔案資訊
從版本 5.2 開始,FtpStreamingMessageSource
(FTP 流式入站通道介面卡)、FtpInboundFileSynchronizingMessageSource
(FTP 入站通道介面卡)以及 FtpOutboundGateway
(FTP 出站閘道器)的 "read" 命令,在生成的 message 中提供了額外的 header,包含有關遠端檔案的資訊。
-
FileHeaders.REMOTE_HOST_PORT
- 檔案傳輸操作期間遠端會話連線到的 host:port 對; -
FileHeaders.REMOTE_DIRECTORY
- 執行操作的遠端目錄; -
FileHeaders.REMOTE_FILE
- 遠端檔名;僅適用於單個檔案操作。
由於 FtpInboundFileSynchronizingMessageSource
不是基於遠端檔案生成 message,而是使用本地副本,因此 AbstractInboundFileSynchronizer
在同步操作期間將遠端檔案的資訊儲存在 MetadataStore
(可外部配置)中,以 URI 格式儲存(protocol://host:port/remoteDirectory#remoteFileName
)。當本地檔案被輪詢時,FtpInboundFileSynchronizingMessageSource
會檢索此元資料。當本地檔案被刪除時,建議移除其元資料條目。AbstractInboundFileSynchronizer
為此目的提供了 removeRemoteFileMetadata()
回撥。此外,還有一個 setMetadataStorePrefix()
用於元資料鍵。建議在這些元件共享同一個 MetadataStore
例項時,將此字首與基於 MetadataStore
的 FileListFilter
實現中使用的字首區分開,以避免條目被覆蓋,因為過濾器和 AbstractInboundFileSynchronizer
都使用相同的本地檔名作為元資料條目鍵。