I need to store multiple files that users upload, and then provide these users with the capability of accessing their files via http. There are two key considerations:
– Storage (which is my primary concern here)
– Security (which let’s leave aside for now)
The question is:
What is the most cost efficient and performant way of storing all these files and giving access to them later? I believe the answer is:
– Store files within Azure Storage Account, and have a key that references them in an SQL Azure database.
I am correct on this?
Is a blob storage flat? Or can I create something like folders inside it to better organize my files?
The idea of using SQL Azure to store metadata for your blobs is a pretty common scenario, which allows you to take advantage of SQL for searching, and blobs for storage.
Blobs are organized by container. So you’d have something like:
You can also simulate a hierarchy using a delimiter, but in reality there’s just container plus blob.
If you keep the container or blob private, the user would either have to go through your web front end (or web service), or you’d have to provide them with a special URL with a Shared Access Signature appended, which is a time-limited URL.