【问题标题】:Dynamically rename files from FTP with camel使用骆驼从FTP动态重命名文件
【发布时间】:2015-12-21 20:50:56
【问题描述】:

我正在尝试使用骆驼将一些文件从 FTP 路由到 HDFS。我的路线总体上似乎运行良好,但是只要文件名中有空格,路线就会失败。尝试将文件复制到 HDFS 失败。 这些文件是动态的、自然的并且每天都在变化,所以我将无法通过 .setHeader 进行特定的包含和更改文件名,也无法重命名 FTP 上的文件。

在将它们路由到 HDFS 之前,是否可以用骆驼动态重命名其中有空格的文件?

【问题讨论】:

    标签: java hadoop apache-camel hdfs


    【解决方案1】:

    存储在名为“CamelFileName”的消息头中的文件名,您可以使用以下内容:

    from("sftp:...")
            .process(new Processor() {
                @Override
                public void process(Exchange exchange) throws Exception {
                    Message in = exchange.getIn();
                    String originalFilename = (String) in.getHeader(Exchange.FILE_NAME);
                    String modifiedFilename = originalFilename.replaceAll("\\s+", "");
                    in.setHeader(Exchange.FILE_NAME,  modifiedFilename);
            }})
    .to("hdfs:...");
    

    或更简洁地说:

    from("ftp:in")
         .setHeader(Exchange.FILE_NAME, header(Exchange.FILE_NAME).regexReplaceAll("\\s+", "_").getExpression())
         .to("hdfs:out");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-17
      • 2011-06-17
      • 1970-01-01
      相关资源
      最近更新 更多