リモートファイル情報

バージョン 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 実装で使用されるプレフィックスとは別にすることをお勧めします。