SFTP is easily one of the most widely used file transfer protocols in business processes. Incidentally, Amazon S3 is also steadily becoming a go-to cloud storage solution for businesses. How would you like to access AWS S3 via SFTP? If that looks like something you could use, check out this post.
Watch the video
Would you prefer to watch a video showing how to access AWS S3 via SFTP? If so, you may play the video below. Otherwise, just skip it if you wish to continue reading.
What I have here is an Amazon S3 bucket named 'jscapejohn' and, inside that bucket, a folder named 'folder1'. Let's say, I want SFTP file uploads to land in this folder.
The SFTP server I'm using for this tutorial is JSCAPE MFT Server, a managed file transfer server that supports SFTP, along with several other file transfer protocols like FTP, FTPS, HTTP, HTTPS, AS2, OFTP, and many others.
In addition to supporting a wide range of file transfer protocols, JSCAPE MFT Server also supports several cloud storage and network services. So you can have your users and trading partners upload files via their file transfer protocol of choice and then have JSCAPE MFT Server store those files in the cloud storage or network service that you prefer.
I'm now here on my JSCAPE MFT Server instance, where I already have an SFTP service up and running.
In order to store files uploaded through that SFTP service onto a folder in your Amazon S3 bucket, you need to create a corresponding Amazon S3 network storage object. To do that, go to the Network Storage module and click the Add button.
Expand the Protocol drop-down list and select Amazon S3. Click OK to proceed.
Once the network storage parameters dialog appears, give this network storage a name, say, 'ns-s3'. After that, enter your AWS S3 access key and its corresponding secret key.
Next, specify the bucket and folder where you want your uploaded files to be stored.
You may test the connection between your JSCAPE MFT Server instance and your AWS S3 bucket by clicking the Test Server button. If you encounter an error like the one shown below, ...
...try checking the region associated with your AWS S3 bucket and see if it matches the region selected in the Region drop-down list. Change it if they don't match.
Click the Test Server button again. If the test succeeds, click OK until you're back at the main screen..
You should then see your newly created network storage object.
Now that you have an AWS S3 network storage object, the next step is to map it to a virtual path. There are two ways to do this. One is by mapping it to a user's virtual path and the other is by mapping it to a group's virtual path. Let's map it to a user's virtual path for now.
Go to the Users module, select the user whose virtual path you want to map with your network storage object, and click Edit.
Navigate to the Paths tab and click the Add button to add a new virtual path.
Define the virtual path. For example, '/s3storage'. This means, this virtual path will be located directly under this user account's root virtual path.
Next, map this virtual path to the network storage you created earlier by clicking the Network Storage option button and then selecting the name of the AWS S3 network storage from the drop-down list.
Click OK to proceed.
We're now ready to give this setup a test run. Let's connect to our SFTP service and see if we can find the AWS S3 virtual path there. Let me obtain the IP address of my JSCAPE MFT Server instance first.
So, in my SFTP client, I can enter that IP address into the appropriate field. I'm also going to enter the other pertinent details, like the username, password, port number of the SFTP service, and protocol type, which in this case is of course SFTP.
Note: the SFTP client I'm using for this example, is JSCAPE AnyClient, a multi-protocol file transfer that supports SFTP and several other file transfer protocols.
As soon as I connect and login using my file transfer client, I should see the folder 's3storage', which is the name of the virtual path that maps to my AWS S3 bucket folder.
So, if I upload files to this folder,
And check the actual S3 bucket folder in my AWS console, I should see the newly uploaded files there.
That's it. Now you know how to set up JSCAPE MFT Server, so your users can access AWS S3 via SFTP.
Try this yourself
Would you like to try this yourself? Download the FREE, fully-functional Starter Edition of JSCAPE MFT Server now.