apache-camel文件组件递归和tempFileName

时间:2017-01-20 15:16:44

标签: apache-camel

我有以下问题: 我想使用ftp组件读取然后写入文件以及相对于ftp用户主目录的路径。为此,我在春天使用recursive = true,它工作正常。问题是我还需要使用tempFileName但是在目标位置*创建为$ {file:onlyname.noext} .tmp的文件不能存储在目标目录中,而是存储在家庭目录中,即 当来源是:

A
|-> B
|-> C
    |->file.txt

目标应该是:

A
|->file.tmp (temporary)
|-> C
    |->file.txt (file.tmp cannot be stored here!)

但是,tempFileName似乎只相对于完整路径工作。这可以改变吗?

2 个答案:

答案 0 :(得分:0)

今天你不能这样做,但我们有一个改进,所以你可以在Camel 2.18.2以后做到这一点。然后,您可以使用../${file:onlyname.noext}.tmp作为临时文件名。

这是在票证中记录的:https://issues.apache.org/jira/browse/CAMEL-10737

答案 1 :(得分:0)

由于.tmp后缀不是必需的,我建议查看tempPrefix-option。

<to uri="file:///C?tempPrefix="../" />

这将导致您的文件存储在名为file.txt的目录A中,直到整个文件完全写入,然后它将被移动到目录C的最终目标。