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.
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<parameter name="transport.vfs.FileURI">vfs:sftp://user:password@ftp.server.com/myPath?sftpPathFromRoot=true</parameter>
Comments