遠端檔案資訊

從 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 例項時,建議此字首與基於 MetadataStoreFileListFilter 實現中使用的字首不同,以避免因為過濾器和 AbstractInboundFileSynchronizer 都使用相同的本地檔名作為元資料條目鍵而導致條目被覆蓋。