Ftp 骆驼式跳伞
我对骆驼apache有意见。我的csv文件中有LF和CRLF。LF出现在我的csv文件的值中。 当camel从ftp获取我的文件并将其放在我的桌面上时,LF不再存在。但是我需要LF字符来正确格式化我的csv,并将其与bindy组件合并Ftp 骆驼式跳伞,ftp,apache-camel,bindy,Ftp,Apache Camel,Bindy,我对骆驼apache有意见。我的csv文件中有LF和CRLF。LF出现在我的csv文件的值中。 当camel从ftp获取我的文件并将其放在我的桌面上时,LF不再存在。但是我需要LF字符来正确格式化我的csv,并将其与bindy组件合并 from("timer://products?fixedRate=true&period="+ TimeUnit.SECONDS.toMillis(30)) .pollEnrich()
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();
当apache在FTP服务器上获取我的文件时,如何保持LF?
谢谢。在ftp用户行中添加
binary=true
。这将停止ftp使用者在从服务器收集文件时转换结束行字符
i、 e
.simple(“ftp://“+ftpUsername+”@“+ftpServer+”?password=“+ftpPassword+”&passiveMode=true&binary=true&stepwise=true&delay=1000&delete=true&include=include=.*sensopur\u product\\\.csv$”)
它是如何工作的? 选项
binary
是在FTP协议的二进制/ASCII模式之间切换的选项。默认情况下,camel将使用ASCII模式(binary=false
)
在FTP协议的ASCII模式下,假设FTP客户端在不同的操作系统类型之间转换文件的结束行字符。例如,当文件从非Unix系统移动到Unix系统时,结束行字符将变为LF
在FTP协议的二进制模式下,FTP客户端应该不转换任何结束行字符。您好hk6279,对我来说效果很好,谢谢。但是它是如何工作的呢?这是关于FTP协议的ASCII/二进制模式的概念。我在回答中加了一部分来解释这一点。