使用camel FTP从多个位置拾取文件

lsmd5eda  于 2022-11-07  发布在  Apache
关注(0)|答案(1)|浏览(209)

我有一个情况,我需要拿起文件从两个不同的位置使用 Camel FTP。
目前我的代码是
请尝试{

from(format("sftp://%s@%s:22/../../..%s?password=%s&delete=true", ftpUserName, ftpServer, responsePath, ftpPassword ))
                .filter(header("CamelFileName").endsWith(".PDF"))
                .to(format("sftp://%s@%s:22/../../..%s/processed?password=%s", ftpUserName, ftpServer, responsePath, ftpPassword))
                .process(documentProcessor)
               /*.log(LoggingLevel.INFO, (org.slf4j.Logger) logger, "Download file ${file:name} complete.")*/
                /*.to(downloadLocation)*/;
        /*.to(format("smtp://relay.us.signintra.com?to=%s&from=noreply@dbschenker.com&subject=GTM response from cisco", emailTo))*/
        ;
    } catch (Exception e) {
        e.printStackTrace();
    }

这是拾取文件中提到的application.properties文件。我如何才能做到这一点,从多个位置puck文件。

9fkzdhlc

9fkzdhlc1#

您可以配置多个FTP使用者路由,并将消息转发到共享的直接终结点。

范例:

from("ftp:{{target.host}}:{{ftp.port}}/{{target.path1}}...")
    .routeId("PollForFilesInPath1")
    .to("direct:handleFileFromFTP");

from("ftp:{{target.host}}:{{ftp.port}}/{{target.path2}}...")
    .routeId("PollForFilesInPath2")
    .to("direct:handleFileFromFTP");

from("direct:handleFileFromFTP")
    .routeId("handleFileFromFTP")
    .log("file received from ftp: ${headers.CamelFileName }")
    // Do stuff with the file

如果您需要从单一路由呼叫2个FTP消费者端点,您可以使用poll-enrich

相关问题