A lot of automated business processes out there use FTP or FTPS to upload data to a server. What if most of it is unstructured data like videos, images, and audio files, and, instead of an FTP/S server, you would like Azure Blob Storage as the final destination for all that uploaded data. That should be fairly easy if your FTP/S service is running on JSCAPE MFT Server. We'll show you how to set up MFT Server for that particular purpose in this post.
Watch the video
Would you prefer to watch a video version of this tutorial instead? You can play the video below. Otherwise, just skip it if you wish to continue reading.
Ok, I'm here on Microsoft Azure Storage Explorer, where you can see a couple of blob containers on the left side of the screen. The container I'm going to use in this tutorial is the one named 'jcpv-test'. Notice that there is currently no data in this blob container.
Now, before I proceed, you might ask — doesn't Azure Storage Explorer have a way of uploading files directly to Azure Blob Storage? Yes, it certainly does. You can even see an Upload button on the screen. But remember, we're mainly concerned with automated uploads here. So, you probably already have a bunch of FTP/S clients that use some automated mechanism (a script perhaps) to upload files to an FTP server. Azure Storage Explorer isn't suitable for workflows like that.
Now that we have that out of the way, let's proceed to my JSCAPE MFT Server instance. Notice that I already have an FTPS service ready to accept files from FTP clients.
The next thing I need to do is add an Azure Blob network storage object. To do that, I just go to the Network Storage module and then click the Add button.
When the Add Network Storage dialog appears, I simply expand the Protocol drop-down list and select 'Microsoft Azure Blob Service' and then click OK.
That should bring up the parameters dialog for this network storage object. Let's proceed by giving this network storage object a name, say, 'ns-azureblob'. Depending on how your target blob container is set up, you might need to tick the Use SSL checkbox.
After that, proceed to the Authentication section and then enter your Storage account name and its corresponding Access key.
Next, scroll down to the Advanced tab and then enter the name of your blob container in the Remote directory field. In my case, I need to enter 'jcpv-test'.
If you want, you can test the connection by clicking on the Test Server button. If the test passed, you may then click the OK button to finalize the network storage creation process.
Once you get back to the main screen, you should see your newly created Azure Blob Storage network storage object among your list of network storage objects.
We're not yet done here. We still need to create a user's virtual path or just edit an existing virtual path and have that path point to the network storage object we just created.
To do that, just go to the Users module, select an existing user account (in my case, that would be 'user-azureblob') and then click Edit.
Navigate to the Paths tab and then either create a new virtual path or edit an existing path. In my case, what I want is, when a client logs in using this user account, it shouldn't have to navigate into any other directory anymore. I want that client to simply upload any files it wishes to upload straight into the virtual path it sees upon login. That path is normally the root path of the account.
So, I'll just select the root path, marked by the forward slash (/) here, and then click Edit.
Next, in the virtual path parameters dialog, I click the Network Storage option and then select the name of the Azure Blob Storage network storage object from the drop-down list.
So, in effect, any upload made on this root virtual path will actually be uploaded to my 'jcpv-test' Azure blob container.
Click Ok to proceed.
We've got everything set up, so let's give this a test run.
I'm now in a file transfer client, where I've entered all the pertinent details for connecting to my FTP service on my JSCAPE MFT Server instance.
As you might have guessed, 172.31.4.180 is the IP address of my JSCAPE MFT Server instance. 21 is of course the default port number for FTP, which, as you probably noticed earlier, also happens to be the port number I'm using on my FTP service.
Lastly, if you recall, 'user-azureblob' is the username of the account whose virtual root path I edited earlier.
Upon connecting, I should see the blob container on the right hand side. Remember that it didn't have anything inside it so the right side is empty. I've now uploaded a couple of files (file01.txt, text1.txt, text3.txt, and text4.txt) to it.
... and if I double-check in my Azure Storage Explorer, sure enough, I see those same files in the blob container 'jcpv-test'.
That's it. Now you know how to upload files to Azure Blob Storage via FTP/S.
Try this out
Would you like to try this out yourself? Download the FREE, fully-functional Starter Edition of JSCAPE MFT Server now.