在camel-ftp中将目录从home更改为root

时间:2017-08-18 15:08:28

标签: apache-camel dsl camel-ftp

我在我的驼峰配置中使用以下内容:

        <camel:from uri="file:{{camel.route.icl.from.file.path}}?filter=#fileFilterMAVRO&amp;initialDelay={{camel.route.from.file.initialDelay}}&amp;delay={{camel.route.from.file.delay}}&amp;useFixedDelay=true&amp;runLoggingLevel=TRACE&amp;startingDirectoryMustExist={{camel.route.from.file.startingDirectoryMustExist}}&amp;autoCreate={{camel.route.from.file.autoCreate}}&amp;maxMessagesPerPoll={{camel.route.from.file.maxMessagesPerPoll}}&amp;eagerMaxMessagesPerPoll=true&amp;delete=false&amp;readLock=idempotent&amp;readLockLoggingLevel=OFF&amp;readLockRemoveOnRollback=false&amp;readLockRemoveOnCommit=false&amp;idempotent=true&amp;idempotentKey=${file:onlyname}&amp;idempotentRepository=#iclMessageIdRepository&amp;recursive=false&amp;move={{camel.route.icl.complete.file.path}}&amp;moveFailed={{camel.route.icl.failed.file.path}}" />

        <camel:to uri="sftp://user1@ecomt199.qintra.com:22/nas/tst2/inputfiles?password=Pass1234&amp;runLoggingLevel=TRACE"/>

    </camel:route>

现在,这是有效的。它可以sftp我的文件。

问题是我希望我的文件位于:/ nas / tst2 / inputfiles 。但它的位置是:/ home / user1 / nas / tst2 / inputfiles

现在,我怎么能在/ nas / tst2 / inputfiles上进行它? / nas /和/ home /都在/

问题是更改此默认值/ home /.

我可以使用哪个属性,我无法找到或了解如何在camel DSL中执行此操作。 请帮忙!

3 个答案:

答案 0 :(得分:3)

Camel确实不允许当前版本中的完全限定路径。但是,只要用户具有权限,您就可以使用这样的路径作为解决方法:

../../../../../../../../this_is_the_root_folder/usr/....

你基本上从用户的目录开始,然后在树中上去,直到你到达root。您只需要确保添加了足够的../../以获取根目录。

不是最好的解决方案,但对我来说很简单并且有效。

答案 1 :(得分:0)

我认为最好的解决方案是在camel dsl中,用于sftp的用户将其置于主目录中。我认为一个好的解决方案是在ftp服务器中配置另一个用户,使用正确的根目录,你想放置你的文件。

答案 2 :(得分:0)

你做不到。当前的camel-ftp实现特别不允许完全限定的路径。所有路径都相对于用户的主目录。

为了解决这个项目,我分叉了组件并删除了剥离前导路径分隔符的代码。