java Camel SFTP文件下载-文件副本移动到客户端,但实际文件存在于服务器中

jpfvwuh4  于 2023-03-28  发布在  Java
关注(0)|答案(1)|浏览(133)

我有一个从外部SFTP服务器下载文件的要求.我有服务,有API托管,一旦我们击中API它应该从SFTP服务器下载文件,我使用 Camel 作为集成器从服务器下载文件.现在,当API被称为路由启动和文件从源复制(服务器)到目的地(客户端),但sftp路由没有关闭,它仍然从服务器获取文件,因为文件存在于服务器中。如何解决这个问题,下面是代码片段。
API代码

@GetMapping("myapicall")
public void fetchFileFromSFTPServer() {
    logger.info("-------Begin of fetchFileFromSFTPServer-------");
    try {
        RouteBuilder routeBuilder = sftpRoute.buildRoute();
        camelContext.addRoutes(routeBuilder);

    } catch (Exception e) {
        logger.error("Error while loading Routes------" + e.getMessage());
    }
    
    camelContext.setUseMDCLogging(true);
    logger.info("-------End of fetchFileFromSFTPServer-------" );
}

路由生成器代码

public RouteBuilder buildRoute() {
    RouteBuilder builder = new RouteBuilder() {

        @Override
        public void configure() throws Exception {
            
            from(
              "sftp://server/?username=**&password=**&passiveMode=true&disconnect=true")
              .routeId("SFTP_File_Route").setExchangePattern(ExchangePattern.InOnly).
              log("connecting to SFTP Server")
              .to("file://C:/myLocal").end();
        }
    };
    return builder;
}
kmpatx3s

kmpatx3s1#

请参阅FTP文档。默认情况下,该文件在FTP服务器上保持原样。您需要配置camel-ftp之后应该如何处理该文件,例如delete=true或任何移动选项等。

相关问题