AzUnzipEverything icon indicating copy to clipboard operation
AzUnzipEverything copied to clipboard

A simple Azure Function to Unzip files from a blob storage to another one

Build Status Serverless Library Deploy to Azure GLO Board

All Contributors

AzUnzipEverything

A simple Azure Function to Unzip files from a blob storage container to another one

The following features are supported in this current version:

  1. Supported Archive Types: .zip, .rar

    Archive support is currently implemented using the sharpcompress library

  2. 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.*

How to deploy

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

CreationForm

How to use it.

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

  1. navigate to the resource Group you just deployed (ex: demoAzUnzipEverything).

    resourceGroup

  2. Select the Storage Account whose name starts with "dropzone".

  3. Click on Blobs, in the middle of the screen.

  4. Click on the input-files container.

  5. Click on the Upload button, and you can now upload a zip file.

    uploadFile

  6. After a few second the files you uploaded will be Unzipped into the blob storage container output-files.

Continuous Integration (CI)

As you can see by the status badge Build Status at the top of the page this project is automatically build at every push.

Have a look, the Azure DevOps project is public!

Create a Continuous Integration, Continuous Deployment (CI-CD) for your Azure Function

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.

FunctionCICD

There is also a written version if you prefer reading: http://www.frankysnotes.com/2019/07/four-ways-to-deploy-your-azure-function.html

TODOs

A GitKraken Glo board is also available.

  • [X] Add Support for .rar (Thank you @mreyeros)
  • [X] Add ARM template
  • [X] Add a Deploy to Azure button

More details

I have a blog post about this Azure Function.

I also have a video where I build and test the function.

Auto-UnzipFunction_YT

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.

AzureFunctionWithVSCode_YT

Contributing ✨

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

💻 🚧 👀