gpt4 book ai didi

java - Camel SFTP 端点未上传文件

转载 作者:太空宇宙 更新时间:2023-11-04 07:14:34 25 4
gpt4 key购买 nike

我正在尝试使用camel-ftp端点(特别是sftp模块)上传新生成的CSV文件。

我的路线的相关部分如下:

...
<marshal>
<csv></csv>
</marshal>
<to uri="file:incoming?tempPrefix=.&amp;fileName=feed.csv" />
<to uri="sftp://username@linuxserver/home/username/file.csv?password=password" />
...

注意:"file"位于

incoming/feed.csv

创建成功,camel的最后几行输出为:

[DefaultQuartzScheduler-camel_Worker-1] INFO org.apache.camel.component.file.remote.SftpOperations - JSCH -> Authentication succeeded (password). 
[DefaultQuartzScheduler-camel_Worker-1] INFO org.apache.camel.component.file.remote.SftpOperations - Connected to sftp://username@linuxserver:22
[DefaultQuartzScheduler-camel_Worker-1] INFO org.apache.camel.component.file.remote.RemoteFileProducer - Connected and logged in to: Endpoint[sftp://username@linuxserver/home/username/file.csv?password=xxxxxx]

但是没有

/home/username/file.csv

在 Linux 服务器上。

注意:

当我将 sftp 路由配置为以下任一内容时,会得到相同的结果:

<to uri="sftp://username@linuxserver/home/username/?password=password" />

<to uri="sftp://username@linuxserver/home/username?password=password" />

我错过了什么?

最佳答案

当 URI 的目录部分存在时,例如:

<to uri="sftp://username@linuxserver/home/username/?password=password" />
文件放置在相对于用户主目录的目录中(在本例中为 ~username/home/username) - 因此,当您想直接将文件放置在用户主目录中时,根本不指定目录 - 使用: <pre><to uri="sftp://username@linuxserver?password=password" /></pre>
当您想将文件放置在主目录之外时,请使用双斜杠将主机名与目录分开: <pre><to uri="sftp://username@linuxserver//home/username/?password=password" /></pre>
使用camel 2.10.7 检查。设置记录器 org.apache.camel.component.file.remote.SftpOperations 的跟踪以验证行为。

@Olivier.Roger - ftps != sftp

关于java - Camel SFTP 端点未上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20145832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com