Introduction
In this blog I have explained how to upload any file to Azure Blob Storage using Microsoft Power Automate (Flow).
Solution
We will use Base64 string as file content. To trigger this flow, I have created HTTP POST request so that, we can call it in any programming language. You can use any other trigger as per your requirement.
Step by Step
- Go to https://flow.microsoft.com and login with your credentials.
- Click on My Flows > New > Instant–from Blank.
- If you are shown list of triggers, click on Skip.
- Search “HTTP request” in search box and select “When an HTTP request is received”
- Then write a JSON object which will contain 3 variables for path, file name and file content. Here path is the “container” of the Azure Blob Storage.
- In flow you will find lot of azure blob storage action. Here we are uploading a file to azure blob storage, then you must add next step as a “Create blob” action.
-
- But to add this action you need to create a connection with “Azure Blob Storage” by providing necessary credentials.
- Set “Folder path” and “Blob name” fields as below.
- Here is the main issue. We cannot pass base64 string directly to “Blob content” field as content. This field required binary datatype value. So, we must convert base64 string to binary. Here MS Flow provide us a function to convert base64 string to binary without any code. To use it, follow below steps.
- Add opening and closing brackets after expression then you will a notification text to inform you about variable to pass this expression.
- Click on “Dynamic content” tab and select appropriate variable.
- You will see final expression as “base64ToBinary(triggerBody()?[‘blobcontent’])”
- Click on “OK”.
- You will see “Blob Content” field is now populated.
- Now you must add new step to send response. To do that, click on new step, search for “Request”, click on “Request” and select “Response” action.
- In response action, in Body filed select “path” variable which is an output variable of “Create Blob” step. Please search for “Path” in dynamic content if you don’t see path variable directly.
- Here path is the link location of the file uploaded on Azure Blob Storage.
- In addition, when you are updating the same file with different file content, then you must use “Update Blob” action which take file location link start from container as path and file content.
- Example for the path : if file location is this ”https://azureblob.windows.net/xyz/files/filename.png“ then path is like this “xyz/files/filename.png”.