遠端檔案資訊
從版本 5.2 開始,FtpStreamingMessageSource(FTP 流式入站通道介面卡)、FtpInboundFileSynchronizingMessageSource(FTP 入站通道介面卡)和 FtpOutboundGateway 的“read”命令(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 都使用相同的本地檔名作為元資料條目鍵。