gpt4 book ai didi

java - 使用 camel 从 FTP 动态重命名文件

转载 作者:可可西里 更新时间:2023-11-01 16:07:45 24 4
gpt4 key购买 nike

我正在尝试使用 camel 将一些文件从 FTP 路由到 HDFS。总的来说,我的路线似乎工作正常,但是只要有一个名称中有空格的文件,路线就会失败。尝试将文件复制到 HDFS 失败。这些文件是动态的,每天都在变化,所以我无法通过 .setHeader 进行特定的包含和更改文件名,也无法在 FTP 上重命名文件。

在将文件路由到 HDFS 之前,是否可以使用 camel 动态重命名名称中有空格的文件?

最佳答案

存储在名为“CamelFileName”的消息 header 中的文件名,您可以这样使用:

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");

关于java - 使用 camel 从 FTP 动态重命名文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34404108/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com