当前位置: 首页 > 知识库问答 >
问题:

Camel SFTP终结点未上载文件

邵兴文
2023-03-14

我试图使用camel-ftpendpoint(特别是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" />
...

注意:位于的“文件”

传入/feed.csv

创建成功,骆驼的最后几行输出如下:

[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

在linuxserver上。

注:

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

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

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

我错过了什么?

共有2个答案

蔺山
2023-03-14

sftpendpoint应指定为

ftps://[username@]hostname[:port]/directoryname[?options]

因此,文件名应在 URI 中指定。您可以使用骆驼文件名标头选择文件名。

您可以在 FTP 组件文档中找到其他信息。

朱昊乾
2023-03-14

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

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

@Olivier罗杰 - ftps !=

 类似资料:
  • 我有两个应用服务器:一个用于内部测试(我们称之为INT),第二个用于生产测试(PRD)。INT运行CentOS 6,PRD运行RHEL 6。两个服务器都运行Jboss EAP 6.2。在这个jboss上,我正在部署EAR应用程序,其中包含一个在战争中打包的WebService。 问题是:WebServiceendpoint不部署在PRD上。INT上没有问题。Ear成功部署在两台服务器上,endpo

  • 我是使用Spring SOAP W的新手。我学习了许多教程,并试图适应这个示例的需要,但从未成功,我得到了这样的消息:找不到[SaajSoapMessage { http://ws . veritran . net/vtAuthServer/types } validatePOTCRequest]的endpoint映射 这是梅的代码: 这是我的终点: 这是我的服务级别: 这是我的WSDL定义 最后

  • 问题内容: 我正在尝试使用AJAX加载跨域HTML页面,但除非dataType为“ jsonp”,否则无法获得响应。但是,使用jsonp时,浏览器期望使用脚本mime类型,但接收到“ text / html”。 我的请求代码是: 有什么方法可以避免对请求使用jsonp吗?我已经尝试使用crossDomain参数,但是没有用。 如果没有,有什么办法可以接收jsonp中的html内容?当前,控制台在j

  • 我有两个docker-compose文件,一个包含多个API的解决方案,另一个包含一些后台运行程序。 问题是一个后台程序使用了在另一个compose文件中运行的API。我希望我可以使用cotnainername作为http://[CONTAINERNAME]:80,但这不起作用,url不知道。我想是因为它在作曲文件里不知道?这个案子的解决方案是什么?

  • 我正在使用apache camel,希望有多条路由。路线如下。