FTP to Azure Blob Storage FTP to Azure Blob Storage azure azure

FTP to Azure Blob Storage


If you are okay with a little programming with Node.js, you can host a FTP server directly backed by Azure Blob.

You can use nodeftpd combined with azure-storage-fs. nodeftpd is the FTP server written in Node.js and support third-party file system manager. azure-storage-fs is a file system manager that is designed to use for nodeftpd and talks to Azure Blob directly.

The file system manager integration code is clearly written under README.md of azure-storage-fs. But you will need to write your own authentication code.


But why?

There are already two very good FTP-style Azure Storage clients out there:
http://storageexplorer.com and http://azurestorageexplorer.codeplex.com

Both of them, as @Guarav well pointed out, can use a Shared Access Signature (SAS) to connect to Azure Storage without exposing the account key.You can then use a different SAS for each customer, if you're building a multi-tenant service - although if you think about it - that's not a very sound separation boundary.

Use a SAS

I would use a separate storage account for every customer. That way if a storage account gets compromised, it only affects one customer. The following limit applies:

From https://azure.microsoft.com/en-us/documentation/articles/storage-scalability-targets/:

Scalability targets for blobs, queues, tables, and files

Number of storage accounts per subscription: 200

This includes both Standard and Premium storage accounts. If you require more than 200 storage accounts, make a request through Azure Support. The Azure Storage team will review your business case and may approve up to 250 storage accounts.