骆驼阿帕奇 FTP 失去 LF
Camel Apache FTP Looses LF
我对骆驼 Apache 有疑问。我的 csv 文件中有 LF 和 CRLF。 LF 存在于我的 csv 文件的值中。
当 camel 从 ftp 获取我的文件并将其放在我的桌面上时,LF 不再存在。但是我需要 LF 字符来正确格式化我的 csv 并将其与 bindy 组件一起使用。
from("timer://products?fixedRate=true&period="+ TimeUnit.SECONDS.toMillis(30))
.pollEnrich()
.simple("ftp://"+ftpUsername+"@"+ftpServer+"?password="+ftpPassword+"&passiveMode=true&stepwise=true&delay=1000&delete=true&include=.*sensopur_product\.csv$")
.process(exchange -> {
System.out.println(exchange.getIn().getBody());
String value = exchange.getIn().getHeader("CamelFileName").toString();
if (value != null && !value.equals("")){
exchange.getIn().setHeader("nomFichier",value);
}else {
exchange.getIn().setHeader("nomFichier","pas de fichier");
}
exchange.getIn().setBody(exchange.getIn().getBody(String.class));
})
.setHeader("nomFichier", simple("${in.header.CamelFileName}"))
.to("file://../sensopur/src/main/resources/static")
.end();
当 camel apache 在 FTP 服务器上获取我的文件时,我该如何保持 LF?
谢谢
在 ftp 消费者行中添加 binary=true
。这将停止 ftp 消费者从服务器收集文件时转换结束符。
即
.simple("ftp://"+ftpUsername+"@"+ftpServer+"?password="+ftpPassword+"&passiveMode=true&binary=true&stepwise=true&delay=1000&delete=true&include=.*sensopur_product\.csv$")
它是如何工作的?
选项binary
是在FTP 协议的binary/ASCII 模式之间切换的选项。默认情况下,camel 将使用 ASCII 模式 (binary=false
)。
在FTP协议的ASCII模式下,FTP客户端假设跨OS类型时转换文件的结束符。例如,当文件从非 Unix 系统移动到 Unix 系统时,结束符将变为 LF
。
在FTP协议的二进制模式下,FTP客户端假设不转换任何结束行字符。
我对骆驼 Apache 有疑问。我的 csv 文件中有 LF 和 CRLF。 LF 存在于我的 csv 文件的值中。 当 camel 从 ftp 获取我的文件并将其放在我的桌面上时,LF 不再存在。但是我需要 LF 字符来正确格式化我的 csv 并将其与 bindy 组件一起使用。
from("timer://products?fixedRate=true&period="+ TimeUnit.SECONDS.toMillis(30))
.pollEnrich()
.simple("ftp://"+ftpUsername+"@"+ftpServer+"?password="+ftpPassword+"&passiveMode=true&stepwise=true&delay=1000&delete=true&include=.*sensopur_product\.csv$")
.process(exchange -> {
System.out.println(exchange.getIn().getBody());
String value = exchange.getIn().getHeader("CamelFileName").toString();
if (value != null && !value.equals("")){
exchange.getIn().setHeader("nomFichier",value);
}else {
exchange.getIn().setHeader("nomFichier","pas de fichier");
}
exchange.getIn().setBody(exchange.getIn().getBody(String.class));
})
.setHeader("nomFichier", simple("${in.header.CamelFileName}"))
.to("file://../sensopur/src/main/resources/static")
.end();
当 camel apache 在 FTP 服务器上获取我的文件时,我该如何保持 LF? 谢谢
在 ftp 消费者行中添加 binary=true
。这将停止 ftp 消费者从服务器收集文件时转换结束符。
即
.simple("ftp://"+ftpUsername+"@"+ftpServer+"?password="+ftpPassword+"&passiveMode=true&binary=true&stepwise=true&delay=1000&delete=true&include=.*sensopur_product\.csv$")
它是如何工作的?
选项binary
是在FTP 协议的binary/ASCII 模式之间切换的选项。默认情况下,camel 将使用 ASCII 模式 (binary=false
)。
在FTP协议的ASCII模式下,FTP客户端假设跨OS类型时转换文件的结束符。例如,当文件从非 Unix 系统移动到 Unix 系统时,结束符将变为 LF
。
在FTP协议的二进制模式下,FTP客户端假设不转换任何结束行字符。