在Mule中将文件从一个位置移动到另一个位置

时间:2014-03-03 07:55:14

标签: file mule mule-studio

我是骡子的新手。我必须完成以下任务

文件位于某个位置。我需要将该文件移动到其他位置。选择位置的标准基于文件名。

假设文件名为'abc_loc1'。然后将此文件移动到文件夹 Location1 。如果文件名为'abc_loc2',则应将其移至 Location2

任何帮助将不胜感激。

1 个答案:

答案 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>