骆驼的新手。我正在尝试使当前的DateTime成为文件名的一部分。关键位在这里:
{
"type": "FeatureCollection",
"features": [{
"type": "Feature",
"properties": {
"level": 0,
"id": 1
},
"geometry": {
"type": "Polygon",
"coordinates": [[
[-75.360297, 6.071571],
[-76.005083, 6.063846],
[-76.051694, 6.511708],
[-75.298149, 6.573451]
]]
}
}]
}
.to(s"sftp://$sftpStr/&fileName=MyFile_${date:now:yyyyMMdd}.csv&noop=true")
包含相关路径。但是Date表达式在编译时引发错误。我敢肯定这是我做的简单而愚蠢的事情,但是我不清楚为什么这行不通。
有一件我不了解的相关事情,这可能有助于弄清我的困惑。我尝试过:
sftpStr
这引发了错误。但是我拿走了字符串中的.log(LoggingLevel.INFO, LOG.getName, s"Route Started! Time = ${date:now:dd-MM-yyyy HH:mm:ss z}")
标签,它工作正常。我以为s
只是发出信号以读取后面的字符串作为一个简单的表达式。
重申一下,基本上只是想捕获文件名中的当前日期/时间(而且我不能仅仅使用s
或其他任何令人讨厌的原因来创建变量)。我加入了一些有关日志的内容,希望能将我的困惑与背景联系起来。
谢谢!
答案 0 :(得分:1)
在您写的问题陈述中,我相信是$sftpStr
。我认为这无法解决。
$sftpStr
是属性,则应使用{{$sftpStr}}
。${header.sftpStr}
。我建议对文件夹和文件名都使用标头。像这样:
from(...)
...
.setHeader("folder", constant("the value"))
.setHeader("CamelFileName", simple("${date:now:yyyyMMdd}"))
.to("sftp:username:password@{{ftp.server}}/${header.folder}&noop=true");
上面的ftp.server
是保存SFTP主机的属性。
希望会有所帮助。