104.19. 写入文件
Camel 还能够写入文件,即生成文件。在以下示例中,我们收到在将 SEDA 队列写入目录之前所处理的 SEDA 队列的一些报告。
104.19.1. 使用 Exchange.FILE_NAME
写入子目录
使用单一路由时,可以将文件写入任意数量的子目录。如果您有路由设置,如下所示:
<route> <from uri="bean:myBean"/> <to uri="file:/rootDirectory"/> </route>
您可以将标头 Exchange.FILE_NAME
设置为值,例如:
Exchange.FILE_NAME = hello.txt => /rootDirectory/hello.txt Exchange.FILE_NAME = foo/bye.txt => /rootDirectory/foo/bye.txt
这可让您有一个路由将文件写入多个目的地。
104.19.2. 通过相对于最终目的地的临时目录写入文件
有时您需要临时将文件写入相对于目标目录的一些目录。当某些具有有限过滤功能的外部进程从您要写入的目录中读取时,通常会发生这种情况。在以下示例中,文件将写入 /var/myapp/filesInProgress
目录,在进行数据传输后,它们将会被原子移到 'var/myapp/finalDirectory 'directory 中。
from("direct:start"). to("file:///var/myapp/finalDirectory?tempPrefix=/../filesInProgress/");