Azure Blob File Explorer

June 16, 2022
azure -blob -oss -toolshed -toolshed-filing-cabinet

Displaying Azure's Blob Storage in a file explorer or filing cabinet view should be easy. Let's make it so. (1 of x)

I have used Azure Blob storage in a few places. Well, actually, in a lot of places. But in fewer cases, I've needed to know what was in there. Usually, I just open up Storage Explorer and either download or upload whatever I need and move on. However, there are some situations where this is not ideal. 

Here are some:

  • I want a preview of the file (usually images)
  • I want an easy way to view the file (i.e., just a single click)
  • Other people that do not have full access (or any access) to the account/container need some kind of access
  • Mentally, associate blobs with a project. Whether controlled by container or folder. Unlike Storage Explorer which is very powerful and maybe overwhelming

In addition to that, there's also a few scenarios where having something more bespoke would be really nice (or required):

  • Integrate into a CMS
  • Integrate in a client app or website
  • Integrate into your BLOG ENGINE 

So, the journey began. Like all good 10X Engineers, I Googled for a solution. And quite unbelievably, I could not find a single solution. Nothing. Actually, I think the closest thing was the original Cloudberry product that turned into Storage Explorer. Aside from that, nothing. Plenty of topics on how to get a file, upload a file, etc. But not an all-in-one library or a cool plug this in and voila!

Why?

I think it has to do with the fact that the Azure Nuget packages already have all the functionality that you need: get, delete, soft delete, tags, list, shares, queues, etc. It's all there. Therefore, if you want to use storage, any of the components, you can use the library.

But the packages, as great as they are, are nothing more than Lego blocks. Of all colors and sizes, sure, but just the blocks. And there aren't even instructions on how you might want to put these together. (Though the docs about the blocks themselves are very good.) It doesn't put things together to know the things I think you want to know if you're thinking of using this as a CMS backend.

The Mission

And that's the mission here. Build something that can be used as a CMS backend, specifically a file-based CMS, not necessarily a CMS like for a website (e.g., Word Press). But I guess nothing stops you from that doing that.

Here are the things that I think I would like to support. I will re-establish this on Github.

  • View files in a Windows Explorer type experience
  • Allow to preview files
  • Allow easy opening of files
  • Integrate with permissions (AD, Keys, etc.)
  • Permissions (internal to container or managed via system)
  • Upload
  • Download
  • Delete
  • Soft delete
  • Rename (delete/create)
  • Move (to different folder/container)
  • Thumbnails (snapshots?)
  • Razor project to display all these in a scaffolded type view (default view)

Follow along on this journey with me: /category/toolshed-filing-cabinet