A simple Azure Function to Unzip files from a blob storage container to another one
The following features are supported in this current version:
-
Supported Archive Types: .zip, .rar
Archive support is currently implemented using the sharpcompress library
-
Password protetected zip files
The current solution provisions an Azure KeyVault instance for storing the zip archive(s) password used during the unzipping process. If password protected zip files are uploaded to the blob storage container, this would be the password used when attempting to un-zip the files into the destination storage container.*
To deploy all the resources in your Azure subscription, just click on the Deploy to Azure button
Fill-up the form and voila! It will be automatically deployed in your Azure subscription. If you don't own an Azure subscription already, you can create your free account today. It comes with 200$ credit, so you can experience almost everything without spending a dime. Create your free Azure account today
Learn more on how to deploy you Azure Function automatically or using the Azure Resource Manager (ARM) template
You can upload files to an Azure Blob storage using many different tools and code, but for this quick introduction let's use the Azure Portal.
Once deployed, open the Azure portal portal.azure.com
-
navigate to the resource Group you just deployed (ex: demoAzUnzipEverything).
-
Select the Storage Account whose name starts with "dropzone".
-
Click on Blobs, in the middle of the screen.
-
Click on the input-files container.
-
Click on the Upload button, and you can now upload a zip file.
-
After a few second the files you uploaded will be Unzipped into the blob storage container output-files.
You can run the Azure Function locally or in a dev Container (files provided in folder .devcontainer). You will need:
- a
local.settings.json
file at the root. You can renamed and update local.settings.example.json or use it as template. - a storage account in Azure or using the emulator
- a KeyVault with a secret
ZipPassword
.
As you can see by the status badge at the top of the page this project is automatically build at every push.
Have a look, the Azure DevOps project is public!
In this video, I show you how to write an Azure Resource Manager (#ARM) template to deploy automatically your serverless Azure Function to Azure. It can be then used with a "Deploy to Azure" button from GitHub or any website, or in an Azure Pipeline to complete a Continuous Integration, Continuous Deployment (CI-CD) solution.
There is also a written version if you prefer reading: http://www.frankysnotes.com/2019/07/four-ways-to-deploy-your-azure-function.html
I have a blog post about this Azure Function.
I also have a video where I build and test the function.
I also have an extended version where I introduce more the Visual Studio Extension to work with Azure Function. And explain more details about the Azure Function V2.
Want to contribute? Check out our Code of Conduct and Contributing docs. This project follows the all-contributors specification. Contributions of any kind welcome!
Thanks goes to these wonderful people (emoji key):
Frank Boucher 💻 📹 📖 |
Michael Reyeros 💻 🚧 👀 |