![](/images/posts/2020-01-31-simple-file-versioning-with-blob-storage-and-azure-functions/hero.png)
A colleague asked if there is a file versioning functionality in Azure Blob Storage. This would be something like File History in Windows, so no, but I suggested a more Cloud Native approach - Azure Functions.
For this demo I created a new Function App in Azure portal. I filled out the first step of the wizard, and left everything else by default. By doing that I also created all other resources required for this demo, including a new resource group.
![](/images/posts/2020-01-31-simple-file-versioning-with-blob-storage-and-azure-functions/function_app.png)
Once the Function App was created, I added a new Function by going through the wizard shown below :
![](/images/posts/2020-01-31-simple-file-versioning-with-blob-storage-and-azure-functions/new_function.gif)
Here is the script I pasted in the Function :
To test if everything is working, open Storage Explorer and find Storage Account that was created in your Resource Group while creating a new Function App. Under Blob Containers, create a new Container named samples-workitems
. Adding any file to that Container will trigger the Azure Function, and you will start seeing versions of your file created.
![](/images/posts/2020-01-31-simple-file-versioning-with-blob-storage-and-azure-functions/file_versioning.gif)
This is just a simple demonstration of Blob Storage triggering an Azure Function, and of course the code is not really production ready.
Some things I would improve :
- Function is triggered twice (second time after the duplicate file is created)
- Content Type of the duplicate file is not the same as original
- Not tested with large files
To take screenshots I use LightShot
To record gifs I use ScreenToGif