Saturday, April 25, 2015

VFS to SFTP cannot access absolute paths

Learn WSO2 ESB VFS Transport

When sending or receiving files with VFS transport to a SFTP folder, the specified path is relative to the user home, not a absolute path.

Eg:  If the URL is vfs:sftp://user:password@ftp.server.com/myPath, the file will be stored at /home/user/myPath not in /myPath


This is how SFTP protocol works. SFTP uses SSH protocol to communicate with the server, so it always log in to the users home directory and then it takes the path relative to the user home directory. That is why this behavior occurs.


If you need to access the different location instead of user home


Solution 1:


This is not supported in WSO2 ESB 4.8.1.


So as a workaroud you can mount /myPath to the /home/user/myPath location and then make sure user have access to the /myPath.


mount --bind /myPath /home/user/myPath


Solution 2:


This will be available in next version WSO2 ESB 4.9.0.



"sftpPathFromRoot=true" needs to be added to the URL if absolute paths are used

<parameter name="transport.vfs.FileURI">vfs:sftp://user:password@ftp.server.com/myPath?sftpPathFromRoot=true</parameter>


https://wso2.org/jira/browse/ESBJAVA-3405



No comments: