我是骡子的新手。我必须完成以下任务
文件位于某个位置。我需要将该文件移动到其他位置。选择位置的标准基于文件名。
假设文件名为'abc_loc1'
。然后将此文件移动到文件夹 Location1 。如果文件名为'abc_loc2'
,则应将其移至 Location2 。
任何帮助将不胜感激。
答案 0 :(得分:2)
您可以将Mule file transport与入站和出站端点一起使用来移动文件,并为出站设置动态路径属性,或者根据原始文件名使用choice routing。您将原始文件名称为#[message.inboundProperties.originalFilename]。
更新(示例流程):
<file:connector name="File"/>
<flow name="exampleFlow">
<file:inbound-endpoint connector-ref="File" path="/tmp/1" responseTimeout="10000" />
<set-variable variableName="myPath" value="#[message.inboundProperties['originalFilename'].substring(message.inboundProperties['originalFilename'].indexOf('_')+1)]" />
<file:outbound-endpoint path="/tmp/#[flowVars['myPath']]" responseTimeout="10000" connector-ref="File" outputPattern="error#[message.inboundProperties['originalFilename']]"/>
</flow>
更新2:
使用选择路由用以下内容替换上面的文件出站:
<choice>
<when expression="#[flowVars['myPath'] == '1']">
<file:outbound-endpoint path="/tmp/1" responseTimeout="10000" connector-ref="File" outputPattern="error#[message.inboundProperties['originalFilename']]"/>
</when>
<when expression="#[flowVars['myPath'] == '2']">
<file:outbound-endpoint path="/tmp/2" responseTimeout="10000" connector-ref="File" outputPattern="error#[message.inboundProperties['originalFilename']]"/>
</when>
</choice>