リモートファイル情報

バージョン 5.2 以降、SftpStreamingMessageSource (SFTP ストリーミング受信チャネルアダプター )、SftpInboundFileSynchronizingMessageSource (SFTP 受信チャネルアダプター )、および SftpOutboundGateway (SFTP 送信ゲートウェイ ) の「読み取り」-commands は、リモートファイルに関する情報を生成するためにメッセージに追加のヘッダーを提供します。

  • FileHeaders.REMOTE_HOST_PORT - ファイル転送操作中にリモートセッションが接続された host:port ペア。

  • FileHeaders.REMOTE_DIRECTORY - 操作が実行されたリモートディレクトリ。

  • FileHeaders.REMOTE_FILE - リモートファイル名。単一ファイル操作にのみ適用されます。

SftpInboundFileSynchronizingMessageSource は リモートファイルに対してメッセージを生成せず、ローカルコピーを使用するため、AbstractInboundFileSynchronizer は同期操作中に、URI スタイル (protocol://host:port/remoteDirectory#remoteFileName) で リモートファイルに関する情報を MetadataStore (外部で構成可能) に格納します。このメタデータは、ローカルファイルがポーリングされたときに SftpInboundFileSynchronizingMessageSource によって取得されます。ローカルファイルを削除する場合は、そのメタデータエントリを削除することをお勧めします。AbstractInboundFileSynchronizer は、この目的のために removeRemoteFileMetadata() コールバックを提供します。また、メタデータキーで使用される setMetadataStorePrefix() があります。同じ MetadataStore インスタンスがこれらのコンポーネント間で共有される場合、フィルターと AbstractInboundFileSynchronizer の両方がメタデータエントリキーに同じローカルファイル名を使用するため、エントリのオーバーライドを回避するために、このプレフィックスは MetadataStore ベースの FileListFilter 実装で使用されるプレフィックスとは別にすることをお勧めします。