リモートファイル情報

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

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

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

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

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