基于文件名通配符过滤器的Mule FTP移动文件
当前情况: Mule版本3.5.0 我有一个FTP服务器,在那里我可以使用FTP:inbound端点通过特定路径连接到该服务器。 在该特定路径上,放置了大量文件(一些用于我们,一些用于其他),因此我使用文件名通配符过滤器来过滤特定的文件名模式:基于文件名通配符过滤器的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="$
<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的建议将其路由到不同的目标