如何在Mule 3.9中使用Mule Requestor连接SFTP及创建源路径
在Mule 3.9中使用Mule Requestor连接SFTP服务器及源路径配置方法
一、先配置SFTP全局连接器
Mule Requestor依赖SFTP连接器建立服务器连接,第一步先完成全局配置:
- 打开Mule Studio,进入目标Flow的设计界面,点击右上角Global Elements标签
- 点击Create,搜索并选择
SFTP(Connector类型),确认进入配置页 - 填写核心连接参数:
- Host:SFTP服务器的IP/域名
- Port:默认22,若服务器用自定义端口则填对应值
- Username:SFTP登录账号
- Password:登录密码;若用密钥认证,切换到Key File选项上传私钥并填写密钥密码
- Working Directory(可选):设置默认工作目录,后续源路径可基于此目录使用相对路径
- 点击Test Connection验证连接正常,保存配置并给连接器命名(比如
sftp-main-connector)
二、配置Mule Requestor与源路径
1. 添加Mule Requestor组件
从右侧Palette面板的Core分类中,拖拽Mule Requestor到Flow的目标位置(比如HTTP Listener之后,或作为Flow起始节点)
2. 设置源路径(Resource参数)
选中Mule Requestor组件,在下方配置面板完成以下设置:
- Connector Reference:选择之前创建的SFTP全局连接器
- Resource:这里就是源路径,支持两种写法:
- 绝对路径:直接写SFTP服务器上的完整路径,例如
/opt/sftp/invoices/*.xml,表示拉取该目录下所有XML格式的发票文件 - 相对路径:若已在SFTP连接器中设置Working Directory,可写相对路径,比如
invoices/*.xml,对应服务器上[Working Directory]/invoices/*.xml
- 绝对路径:直接写SFTP服务器上的完整路径,例如
- Action:选择
READ(读取文件内容);若需完成拉取后移动/删除文件,可选择MOVE或DELETE - Target Variable(可选):指定变量名存储读取到的文件内容,比如
invoiceContent,后续可通过#[vars.invoiceContent]调用
3. 示例XML配置
如果直接编写Flow的XML代码,参考以下示例:
<flow name="sftp-pull-flow"> <http:listener config-ref="HTTP_Listener_Config" path="/fetch-sftp-files" doc:name="HTTP"/> <mule-requestor config-ref="sftp-main-connector" resource="/opt/sftp/invoices/*.xml" action="READ" targetVariable="invoiceContent" doc:name="Mule Requestor"/> <logger message="Fetched file content: #[vars.invoiceContent]" level="INFO" doc:name="Log File Content"/> </flow> <sftp:config name="sftp-main-connector" host="sftp.your-server.com" port="22" username="sftp-user" password="your-pass" workingDirectory="/opt/sftp" doc:name="SFTP"/>
关键注意点
- 源路径支持通配符:
*匹配任意非路径分隔符的字符,**匹配任意层级子目录,比如/opt/sftp/**/*.pdf会匹配/opt/sftp下所有子目录中的PDF文件 - 确保Mule应用所在服务器能访问SFTP服务器的对应端口(默认22),无防火墙拦截
- 密钥认证时,私钥文件权限需设置正确(Linux系统建议设为600,避免权限过高被拒绝)
内容的提问来源于stack exchange,提问作者Niharika Tangella
相关产品推荐
相关产品推荐

