103.19. ファイルへの書き込み

もちろん、Camel はファイルを書き込むこともできます。つまり、ファイルを生成します。以下のサンプルでは、ディレクトリーに書き込まれる前に処理する SEDA キューに関するいくつかのレポートを受け取ります。

103.19.1. Exchange.FILE_NAME を使用してサブディレクトリーに書き込む

単一のルートを使用して、任意の数のサブディレクトリーにファイルを書き込むことができます。そのようなルート設定がある場合:

<route>
  <from uri="bean:myBean"/>
  <to uri="file:/rootDirectory"/>
</route>

myBean でヘッダー Exchange.FILE_NAME を次のような値に設定できます。

Exchange.FILE_NAME = hello.txt => /rootDirectory/hello.txt
Exchange.FILE_NAME = foo/bye.txt => /rootDirectory/foo/bye.txt

これにより、単一のルートでファイルを複数の宛先に書き込むことができます。

103.19.2. 最終宛先に相対的な一時ディレクトリーを介してファイルを書き込む

宛先ディレクトリーからの相対ディレクトリーにファイルを一時的に書き込む必要がある場合があります。このような状況は通常、フィルタリング機能が制限された外部プロセスが、書き込み先のディレクトリーから読み取っているときに発生します。以下の例では、ファイルは /var/myapp/filesInProgress ディレクトリーに書き込まれ、データ転送が完了すると、原子的に /var/myapp/finalDirectory ディレクトリーに移動されます。

from("direct:start").
  to("file:///var/myapp/finalDirectory?tempPrefix=/../filesInProgress/");