Sample code for 30+ languages & platforms
B4X

Azure Storage: Download Blob to File

See more Azure Cloud Storage Examples

Sample code to download an Azure blob to a file.

Chilkat B4X Downloads

B4X
Dim success As Boolean = False

'  This example requires the Chilkat API to have been previously unlocked.
'  See Global Unlock Sample for sample code.

Dim rest As ChilkatRest
rest.Initialize("rest")

'  Connect to the Azure Storage Blob Service
Dim bTls As Boolean = True
Dim port As Int = 443
Dim bAutoReconnect As Boolean = True
'  In this example, the storage account name is "chilkat".
success = rest.Connect("chilkat.blob.core.windows.net", port, bTls, bAutoReconnect)
If success <> True Then
    Log(rest.LastErrorText)
    Return
End If


'  Provide Azure Cloud credentials for the REST call.
Dim azAuth As ChilkatAuthAzureStorage
azAuth.Initialize
azAuth.AccessKey = "AZURE_ACCESS_KEY"
'  The account name used here should match the 1st part of the domain passed in the call to Connect (above).
azAuth.Account = "chilkat"
azAuth.Scheme = "SharedKey"
azAuth.Service = "Blob"
'  This causes the "x-ms-version: 2021-08-06" header to be automatically added.
azAuth.XMsVersion = "2021-08-06"
success = rest.SetAuthAzureStorage(azAuth)

'  Note: The application does not need to explicitly set the following
'  headers: Content-Length, x-ms-date, Authorization.  These headers
'  are automatically set by Chilkat.

'  Setup a file stream for the download
Dim fileStream As ChilkatStream
fileStream.Initialize("fileStream")
fileStream.SinkFile = "C:/temp/qa_output/starfish.jpg"

'  Indicate that the call to FullRequestNoBody should send the response body
'  to fileStream if the response status code is 200.
'  If a non-success response status code is received, then nothing
'  is streamed to the output file and the error response is returned by FullRequestNoBody.
Dim expectedStatus As Int = 200
rest.SetResponseBodyStream(expectedStatus, True, fileStream)

'  The Azure blob container is "test", the file is "starfish.jpg"
Dim responseStr As String = rest.FullRequestNoBody("GET", "/test/starfish.jpg")
If rest.LastMethodSuccess <> True Then

    '  Examine the request/response to see what happened.
    Log("response status code = " & rest.ResponseStatusCode)
    Log("response status text = " & rest.ResponseStatusText)
    Log("response header: " & rest.ResponseHeader)
    Log("response body (if any): " & responseStr)
    Log("---")
    Log("LastRequestStartLine: " & rest.LastRequestStartLine)
    Log("LastRequestHeader: " & rest.LastRequestHeader)
    Return
End If


Log("Success.")