Apache camel 在camel ftp中将目录从主目录更改为根目录
我在驼峰配置中使用以下内容:Apache camel 在camel ftp中将目录从主目录更改为根目录,apache-camel,dsl,camel-ftp,Apache Camel,Dsl,Camel Ftp,我在驼峰配置中使用以下内容: <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&ru
<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/
我无法找到或理解如何在camel DSL中使用哪个属性。
请帮忙 我认为最好的解决方案不是骆驼dsl,您用于sftp的用户将其根目录放在home目录中。我认为一个好的解决方案是在ftp服务器中为另一个用户配置正确的根目录,您希望将文件放在该目录中。我认为最好的解决方案不是骆驼dsl,您用于sftp的用户将其根目录放在主目录中。我认为一个好的解决方案是在ftp服务器中为另一个用户配置正确的根目录,您希望将文件放在其中。您不能。当前的camel ftp实现特别不允许完全限定路径。所有路径都相对于用户的主目录
为了在我的项目中解决这个问题,我对组件进行了分叉,并删除了去掉前导路径分隔符的代码。您不能这样做。当前的camel ftp实现特别不允许完全限定路径。所有路径都相对于用户的主目录
为了在我的项目中解决这个问题,我对组件进行了分叉,并删除了去掉前导路径分隔符的代码。Camel在当前版本中确实不允许完全限定路径。但是,只要用户具有权限,您就可以使用如下路径作为解决方法:
../../../../../../../../this_is_the_root_folder/usr/....
基本上从用户的目录开始,然后在树中上升,直到到达根目录。只需确保添加了足够的。/../
即可到达根目录
这不是最好的解决方案,但简单且对我有效。在当前版本中,Camel确实不允许完全限定路径。但是,只要用户具有权限,您就可以使用如下路径作为解决方法:
../../../../../../../../this_is_the_root_folder/usr/....
基本上从用户的目录开始,然后在树中上升,直到到达根目录。只需确保添加了足够的。/../
即可到达根目录
这不是最好的解决方案,但简单易行。这只会更改/home/dir中的用户名,比如/home/user2/。我想知道如何在XMLDSL中访问主“/”目录,是否还有其他想法?它说的是Linux。你在目标系统中使用它为用户重新定位home dir,那么使用sftp就很容易了。为了提高安全性,请使用chroot命令。这只会更改/home/dir中的用户名,如/home/user2/。我想知道如何在XMLDSL中访问主“/”目录,是否还有其他想法?它说的是Linux。你在目标系统中使用它为用户重新定位home dir,那么使用sftp就很容易了。为了提高安全性,请使用chroot命令。你能帮我详细介绍一下如何做到这一点吗?从GitHub获取camel ftp组件。然后注释org.apache.camel.component.file.remote.FtpUtils方法的使用。确保相关ftp目录。你能帮我详细介绍一下如何做到这一点吗?从GitHub获取camel ftp组件。然后注释org.apache.camel.component.file.remote.FtpUtils方法的使用。确保相关的FTP董事会。我理解你的逻辑。但这对我没用,谢谢你!问题解决了,我不得不添加逐步=真。非常感谢:)你可以帮我们一个忙,然后把答案记为正确;-)stackoverflow不允许我做任何动作,甚至不允许由于信誉分数较低而向上箭头单击。我在评论中补充了关于余的内容。我理解你的逻辑。但这对我没用,谢谢你!问题解决了,我不得不添加逐步=真。非常感谢:)你可以帮我们一个忙,然后把答案记为正确;-)stackoverflow不允许我做任何动作,甚至不允许由于信誉分数较低而向上箭头单击。我在评论中添加了关于yu的内容。感谢@mcode,这是通过添加“/…/”来解决的。使用stepwise=true。从camel v2.6开始,
stepwise=true
是默认行为。感谢@mcode,这是通过添加“/…/”来解决的。从camel v2.6开始,stepwise=true
是默认行为。