遠端檔案資訊

從 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() 可用於中繼資料金鑰中。建議此字首與基於 MetadataStoreFileListFilter 實作中使用的字首不同,當這些元件之間共用相同的 MetadataStore 實例時,以避免項目覆寫,因為篩選器和 AbstractInboundFileSynchronizer 都使用相同的本機檔案名稱作為中繼資料項目金鑰。