基于文件名通配符过滤器的Mule FTP移动文件

基于文件名通配符过滤器的Mule FTP移动文件,ftp,mule,flow,mule-component,Ftp,Mule,Flow,Mule Component,当前情况: Mule版本3.5.0 我有一个FTP服务器,在那里我可以使用FTP:inbound端点通过特定路径连接到该服务器。 在该特定路径上,放置了大量文件(一些用于我们,一些用于其他),因此我使用文件名通配符过滤器来过滤特定的文件名模式: <flow name="flowA"> <ftp:inbound-endpoint host="${ftp.host}" port="${ftp.port}" user="${ftp.username}" password="$

当前情况:

Mule版本3.5.0

我有一个FTP服务器,在那里我可以使用FTP:inbound端点通过特定路径连接到该服务器。 在该特定路径上,放置了大量文件(一些用于我们,一些用于其他),因此我使用文件名通配符过滤器来过滤特定的文件名模式:

<flow name="flowA">
    <ftp:inbound-endpoint host="${ftp.host}" port="${ftp.port}" user="${ftp.username}" password="${ftp.password}" path="${ftp.root.in}">
        <file:filename-wildcard-filter pattern="${environment}*TYPE_A*.xml.gz" caseSensitive="false"/>
        <gzip-uncompress-transformer/>
    </ftp:inbound-endpoint>
    <file:outbound-endpoint path="${home.dir}/typeA/in" responseTimeout="10000" outputPattern="#[message.inboundProperties.originalFilename]"/>
</flow>
这意味着不可能有两个ftp:入站端点在同一主机上侦听,但使用不同的文件名通配符筛选器


我怎样才能解决这个问题?我是使用一个ftp:inbound端点指定一个流,然后根据文件名分割传入文件,还是可以启用不同的ftp:inbound端点在同一主机上侦听?

您可以使用两个连接器尝试两个,如:

<sftp:connector name="SFTP" validateConnections="false" doc:name="SFTP" autoDelete="false" />
<sftp:connector name="SFTP1" validateConnections="false" doc:name="SFTP" autoDelete="false"/>

然后用作

<sftp:inbound-endpoint connector-ref="SFTP" ......
<sftp:inbound-endpoint connector-ref="SFTP1" .....

您可以尝试使用两个连接器,如:

<sftp:connector name="SFTP" validateConnections="false" doc:name="SFTP" autoDelete="false" />
<sftp:connector name="SFTP1" validateConnections="false" doc:name="SFTP" autoDelete="false"/>

然后用作

<sftp:inbound-endpoint connector-ref="SFTP" ......
<sftp:inbound-endpoint connector-ref="SFTP1" .....

不要为所有FTP组件使用一个全局连接器配置,而是每次为不同的FTP组件使用一个新的连接器配置。这对我来说很好


发生此问题的原因是同一主机用于多个FTP组件。我知道我们对其他组件(如DB)也这样做(为所有组件保留一个全局配置),结果很好,但对FTP不起作用。

与其为所有FTP组件使用一个全局连接器配置,不如每次为不同的FTP组件使用一个新的连接器配置。这对我来说很好


发生此问题的原因是同一主机用于多个FTP组件。我知道我们对其他组件(如DB)也做了同样的操作(为所有组件保留一个全局配置),结果很好,但对FTP不正常。

我认为不能同时使用两个端点。有一个regex过滤器可以用来获取这两种文件,然后可以使用choice元素再次路由(或者更好的是,设置一个“path”变量,稍后在出站中使用)。HTH.使用一个ftp入站端点(接收所有文件),然后使用基于通配符的筛选器并将其路由到@afelistatti建议的不同目的地。我不认为您可以同时使用两个端点。有一个regex过滤器可以用来获取这两种文件,然后可以使用choice元素再次路由(或者更好的是,设置一个“path”变量,稍后在出站中使用)。HTH.使用一个ftp入站端点(接收所有文件),然后使用基于通配符的筛选器,并按照@afelisatti的建议将其路由到不同的目标