2014-03-12 59 views
5

根据https://camel.apache.org/file2.html,文件组件不能配置动态输入/输出文件夹位置?骆驼文件组件中的动态输入/输出文件夹位置

是否有任何解决方法/替代方法相同?

谢谢。

问候 塞特希·库马尔·谢卡尔

+0

没有别的我知道的。 – Namphibian

+0

使用收件人列表(http://camel.apache.org/how-do-i-use-dynamic-uri-in-to.html) – Mashrur

+0

与解决方案类似的帖子输出文件夹位置可能是动态的:http:// stackoverflow。 com/a/32655201/3784642 – berhauz

回答

3

对于文件消费者

您可以使用客户过滤器作为目录/文件皮卡的动态选择。但起始目录配置一次(硬编码)。

为了改变这种情况,您需要停止路线,并更改目录,并再次启动路线 - 如果您想尝试该方向。

对于文件制作

文件名是完全动态的,你可以只设置一个名称为你想要的文件头。详情请参阅文档。

+1

OP想要一个动态输出*文件夹*位置;只有文件端点的'fileName'部分可以是动态AFAICT。 – pimlottc

+0

请注意,如果您使用CAMEL FTP/SFTP/FTPS组件(v2.16.3,可能包含其他版本)构建动态URI,则必须确保URI的所有可变部分都作为标题属性传递,而不是URI选项;您的URI必须与每次发送完全相同(可以使用$ {}道具)。事实上,动态端点被记录在缓存中用于每次传输,并且如果URI由于单个字符而不同,则分配新对象。这个bug https://issues.apache.org/jira/browse/CAMEL-10281会爆炸你的堆,记录的缓存限制(缺省值1000)不会被强制执行。 – berhauz

1

您也可以使用标头CamelFileName来动态设置目录。斜线将被转换为目录。

例如:CamelFileName = "directory/dyn_subdirectory_n/myfilename.txt"将被置于位于"directory"的目录"dyn_subdirectory_n"。文件名将是"myfilename.txt"