是否可以通过代码调用sftp出站端点并发送文件? 我在java代码中引用了一个File对象(在自定义转换器中),我想调用sftp出站端点并传递该File引用。这可行吗? 感谢。
答案 0 :(得分:1)
传递FileInputStream
,这应该有用。
muleContext.getClient().dispatch("sftp://...", new FileInputStream(file), null);
如果没有,则必须传递byte[]
。
请注意dispatch
是异步的:当SFTP通信发生时,呼叫将立即返回。如果你想等到它完成,请使用send
并将超时作为最后一个参数。
由于您配置了多个SFTP连接器,因此您必须在URL中指定连接器名称。假设您要使用SFTP_Upload_Connector
发送,则必须使用:
muleContext.getClient().dispatch("sftp://...?connector=SFTP_Upload_Connector", new FileInputStream(file), null);
如果要设置特定目标文件名,请将其作为属性映射中名为filename
的属性传递,例如使用:
muleContext.getClient().dispatch("sftp://...?connector=SFTP_Upload_Connector", new FileInputStream(file), Collections.singletonMap("filename", "somen_ame"));