遠端檔案資訊
從 5.2 版開始,SftpStreamingMessageSource
(SFTP 串流輸入通道配接器)、SftpInboundFileSynchronizingMessageSource
(SFTP 輸入通道配接器) 和 SftpOutboundGateway
的 "read" 命令 (SFTP 輸出閘道) 在訊息中提供額外的標頭,以產生關於遠端檔案的資訊
-
FileHeaders.REMOTE_HOST_PORT
- 遠端工作階段在檔案傳輸操作期間連線的主機:埠配對; -
FileHeaders.REMOTE_DIRECTORY
- 執行操作的遠端目錄; -
FileHeaders.REMOTE_FILE
- 遠端檔案名稱;僅適用於單一檔案操作。
由於 SftpInboundFileSynchronizingMessageSource
不會針對遠端檔案產生訊息,而是使用本機複本,因此 AbstractInboundFileSynchronizer
會將關於遠端檔案的資訊儲存在 MetadataStore
中(可以從外部設定),在同步操作期間以 URI 樣式 (protocol://host:port/remoteDirectory#remoteFileName
) 儲存。當輪詢本機檔案時,SftpInboundFileSynchronizingMessageSource
會擷取此中繼資料。當本機檔案被刪除時,建議移除其中繼資料條目。AbstractInboundFileSynchronizer
提供 removeRemoteFileMetadata()
回呼以達到此目的。此外,還有一個 setMetadataStorePrefix()
可用於中繼資料金鑰中。建議此前置詞與基於 MetadataStore
的 FileListFilter
實作中使用的前置詞不同,當相同的 MetadataStore
實例在這些元件之間共用時,以避免條目覆寫,因為篩選器和 AbstractInboundFileSynchronizer
都使用相同的本機檔案名稱作為中繼資料條目金鑰。