我在我的代理中使用以下代码连接ftp服务器以从中读取文件。
<proxy name="SFTPVFSProxy" transports="vfs" startOnLoad="true" xmlns="http://ws.apache.org/ns/synapse">
<target>
<inSequence>
<send/>
</inSequence>
</target>
<parameter name="transport.vfs.ActionAfterProcess">MOVE</parameter>
<parameter name="transport.PollInterval">15</parameter>
<parameter name="transport.vfs.MoveAfterProcess">vfs:sftp://username:password@ftpserver-host/outbox</parameter>
<parameter name="transport.vfs.FileURI">vfs:sftp://username:password@ftpserver-host/inbox</parameter>
<parameter name="transport.vfs.MoveAfterFailure">vfs:sftp://username:password@ftpserver-host/sent</parameter>
<parameter name="transport.vfs.FileNamePattern">.*.txt</parameter>
<parameter name="transport.vfs.ContentType">application/xml</parameter>
<parameter name="transport.vfs.ActionAfterFailure">MOVE</parameter>
</proxy>
但是当我运行上面的操作时,我的错误就越来越差了。在axis2.xml中输入VFS传输,我可以在wso2 esb 4.9.0管理控制台中看到vfs传输。
系统无法从vfs推断传输信息:sftp:// user:password @ sftpserverhost / in URL
答案 0 :(得分:0)
SFTP使用SSH协议与服务器通信,因此它始终登录到用户的主目录,然后获取相对于用户主目录的路径。
您可以将“sftpPathFromRoot”添加到WSO2 VFS传输URI,以获得绝对路径访问权限,如下所示。
<parameter name="transport.vfs.FileURI">sftp://[ username[: password]@] hostname[: port][ absolute-path]?sftpPathFromRoot=true</parameter>
或者,您可以使用符号链接。您可以找到更多详细信息here。