我在我的驼峰配置中使用以下内容:
<camel:from uri="file:{{camel.route.icl.from.file.path}}?filter=#fileFilterMAVRO&initialDelay={{camel.route.from.file.initialDelay}}&delay={{camel.route.from.file.delay}}&useFixedDelay=true&runLoggingLevel=TRACE&startingDirectoryMustExist={{camel.route.from.file.startingDirectoryMustExist}}&autoCreate={{camel.route.from.file.autoCreate}}&maxMessagesPerPoll={{camel.route.from.file.maxMessagesPerPoll}}&eagerMaxMessagesPerPoll=true&delete=false&readLock=idempotent&readLockLoggingLevel=OFF&readLockRemoveOnRollback=false&readLockRemoveOnCommit=false&idempotent=true&idempotentKey=${file:onlyname}&idempotentRepository=#iclMessageIdRepository&recursive=false&move={{camel.route.icl.complete.file.path}}&moveFailed={{camel.route.icl.failed.file.path}}" />
<camel:to uri="sftp://user1@ecomt199.qintra.com:22/nas/tst2/inputfiles?password=Pass1234&runLoggingLevel=TRACE"/>
</camel:route>
现在,这是有效的。它可以sftp我的文件。
问题是我希望我的文件位于:/ nas / tst2 / inputfiles 。但它的位置是:/ home / user1 / nas / tst2 / inputfiles
现在,我怎么能在/ nas / tst2 / inputfiles上进行它? / nas /和/ home /都在/
问题是更改此默认值/ home /.
我可以使用哪个属性,我无法找到或了解如何在camel DSL中执行此操作。 请帮忙!
答案 0 :(得分:3)
Camel确实不允许当前版本中的完全限定路径。但是,只要用户具有权限,您就可以使用这样的路径作为解决方法:
../../../../../../../../this_is_the_root_folder/usr/....
你基本上从用户的目录开始,然后在树中上去,直到你到达root。您只需要确保添加了足够的../../
以获取根目录。
不是最好的解决方案,但对我来说很简单并且有效。
答案 1 :(得分:0)
我认为最好的解决方案是在camel dsl中,用于sftp的用户将其置于主目录中。我认为一个好的解决方案是在ftp服务器中配置另一个用户,使用正确的根目录,你想放置你的文件。
答案 2 :(得分:0)
你做不到。当前的camel-ftp实现特别不允许完全限定的路径。所有路径都相对于用户的主目录。
为了解决这个项目,我分叉了组件并删除了剥离前导路径分隔符的代码。