Dotnet Core Storage, cloud or file system storage made easy

If you ever dealt with file storage during cloud development, you are probably familiar with solutions like Azure blob storage or Amazon S3. They are powerful solutions to store large amount of files in an efficient, scalable and reliable way.

However, they come with several constraints :

An internet connection or an emulator is required during development.

Their APIs are not as simple as filesystem ones for basic operations.

Your product becomes cloud dependent.

It often strongly ties your solution to a specific cloud provider.

Introducing Geeklearning's storage abstraction

Since I started working with early asp.net core alphas, I maintained closed source helpers around Azure storage.
Their first goal was to provide a simplified api. And after a few months copy pasting those in every single project, I decided it was time to make this a library.

Here are the objectives of this library :

Making offline development as simple as possible by providing a full fledged filesystem based implementation.

Configuration based provider switching.

Allow users to easily migrate from or to Azure with a simple azcopy operation.

I've made a good progress towards this. You can find version 0.3.0 on Nuget which offers :

GeekLearning.Storage : The storage abstractions. This does nothing by itself and you need at least one storage provider as well.

The store will return a list of IFileReference that expose various method and properties; allowing you to read, edit or delete file and metadata. For instance, the following statement will read summaries/don-quijote.txt content:

I hope you enjoyed this article and found it useful. I’d love to hear about your thoughts in the comment section. We are looking forward to your feedback and suggestions. Thanks for reading! And may code be with you.