遠端檔案資訊
從 5.2 版開始,FtpStreamingMessageSource
(「FTP 串流入站通道適配器」)、FtpInboundFileSynchronizingMessageSource
(「FTP 入站通道適配器」) 和 FtpOutboundGateway
(「FTP 出站閘道器」) 的 "read" 命令會在訊息中提供額外的標頭,以產生遠端檔案的相關資訊
-
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
都使用相同的本機檔案名稱作為中繼資料項目金鑰。