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