Search code examples
ftpsftpibm-integration-bus

Using IIB File nodes to move, copy, download and rename (S)FTP files without opening them


I am using IIB, and several of the requirements I have are for message flows that can do the following things:

  • Download a file from an FTP and/or SFTP server to the local file system, with a different name
  • Rename a file on the local file system
  • Move and rename a file on the (S)FTP server
  • Upload a file from the file system to the (S)FTP server, with a different name

Looking at the nodes available (FileInputNode, FileReadNode, FileOutputNode); it appears that they can read and write files in this way; but only by copying them into memory and then physically rewriting the files - rather than just using a copy/move/download-type command, which would never need to open the file in the same way.

I've noticed that there's options to move store files locally once the read is complete, however; so perhaps there's a way around it using that functionality? I don't need to open the files into memory at all - I don't care what's in the files.

Currently I am doing this using a Java Compute Node and Apache Commons Net classes for FTP - but they don't work for SFTP and the workaround seems too complex; so I was wondering if there was a pure IIB way to do it.


Solution

  • There is no native way to do this, but it can be done using Apache Commons VFS