【发布时间】:2019-01-31 06:02:49
【问题描述】:
我正在使用 Apache Camel File2 (SFTP)(带有 Camel 最新版本)和 Java8 API。 我正在尝试开发一个 MyRouteBuilder.java 类,它扩展了 RouteBuilder 类并实现了 configure 方法。
我想将文件从源路径传输到目标路径。 在源端点中,指定 URI 参数“include”以包含来自源路径下特定特定子文件夹的文件,例如“SubFolder1、SubFolder2、SubFolder3”。
示例源 URI: 1)“文件:\src\SubFolder1\.*\.txt” 2)“文件:\src\SubFolder2\.*\.txt”
我已经尝试过下面的多个示例,甚至 例子:
1) include=.SubFolder[1-2]\.*\.txt
2) include=.SubFolder1|SubFolder2\.*\.txt
3) include=SubFolder[1-2]\.*\.txt
4) include=SubFolder1\.*\.txt
5) include=.SubFolder(?)\.*\.txt
没有任何效果。
请提出一种使用 Java 的 Apache Camel File2 API 解决方法。
public void configure() throws Exception {
String sftpUrl = "sftp://" + user + "@" + hostName + sourcePath + "?" + "noop=true"
+ "&recursive=true&include=.*\\.txt$"+"&strictHostKeyChecking=no" + "&useUserKnownHostsFile=true" + "&password=RAW("
+ password + ")&preferredAuthentications=publickey,keyboard-interactive,password";
System.out.println("\n\n sftpUrl + " + sftpUrl + "\n\n");
from(sftpUrl)
.log(" Copying File : ${file:name} ").process(exchange -> {
System.out.println("1. Processing a File --> = " + exchange);
}).to("file://" + destPath)
// ;
.log("Uploading file ${file:parent} / ${file:name} complete.");
}
【问题讨论】:
-
假设您已经尝试过来自official docs 的示例。您能否向我们展示您的路线构建器代码(无论您拥有什么)。 “没有任何工作”不是一个好的问题陈述。告诉究竟是什么不起作用
-
包含参数正则表达式不起作用
-
String sftpUrl = "sftp://" + user + "@" + hostName + sourcePath + "?" + "noop=true" + "&recursive=true&include=.SubFolder1\\\*\\.txt$"+"&strictHostKeyChecking=no" + "&useUserKnownHostsFile=true" + "&password=RAW(" + password + ")&preferredAuthentications= publickey,keyboard-interactive,password";
-
这看起来像 ftp2 组件,而不是 File2。 FTP2 不支持
include。请在 cmets 中的问题中发布您的整个路线。
标签: java apache-camel camel-ftp