Sample code for 30+ languages & platforms
PureBasic

Azure Storage: Delete Blob

See more Azure Cloud Storage Examples

Demonstrates the Azure Delete Blob operation, which marks the specified blob for deletion. The blob is later deleted during garbage collection.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkRest.pb"
IncludeFile "CkAuthAzureStorage.pb"

Procedure ChilkatExample()

    success.i = 0

    ; Azure Blob Service Example: Delete a particular blob in a specified container.
    ; See also: https://docs.microsoft.com/en-us/rest/api/storageservices/delete-blob

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

    rest.i = CkRest::ckCreate()
    If rest.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    ; Connect to the Azure Storage Blob Service
    bTls.i = 1
    port.i = 443
    bAutoReconnect.i = 1
    ; In this example, the storage account name is "chilkat".
    success = CkRest::ckConnect(rest,"chilkat.blob.core.windows.net",port,bTls,bAutoReconnect)
    If success <> 1
        Debug CkRest::ckLastErrorText(rest)
        CkRest::ckDispose(rest)
        ProcedureReturn
    EndIf

    ; Provide Azure Cloud credentials for the REST call.
    azAuth.i = CkAuthAzureStorage::ckCreate()
    If azAuth.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkAuthAzureStorage::setCkAccessKey(azAuth, "AZURE_ACCESS_KEY")
    ; The account name used here should match the 1st part of the domain passed in the call to Connect (above).
    CkAuthAzureStorage::setCkAccount(azAuth, "chilkat")
    CkAuthAzureStorage::setCkScheme(azAuth, "SharedKey")
    CkAuthAzureStorage::setCkService(azAuth, "Blob")
    ; This causes the "x-ms-version: 2021-08-06" header to be automatically added.
    CkAuthAzureStorage::setCkXMsVersion(azAuth, "2021-08-06")
    success = CkRest::ckSetAuthAzureStorage(rest,azAuth)

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

    ; A successful operation returns status code 202 (Accepted) with no response body.
    ; This example deletes the blob named "helloWorld.txt" located in "mycontainer"
    responseStr.s = CkRest::ckFullRequestNoBody(rest,"DELETE","/mycontainer/helloWorld.txt")
    If CkRest::ckLastMethodSuccess(rest) <> 1
        Debug CkRest::ckLastErrorText(rest)
        CkRest::ckDispose(rest)
        CkAuthAzureStorage::ckDispose(azAuth)
        ProcedureReturn
    EndIf

    If CkRest::ckResponseStatusCode(rest) <> 202
        ; Examine the request/response to see what happened.
        Debug "response status code = " + Str(CkRest::ckResponseStatusCode(rest))
        Debug "response status text = " + CkRest::ckResponseStatusText(rest)
        Debug "response header: " + CkRest::ckResponseHeader(rest)
        Debug "response body (if any): " + responseStr
        Debug "---"
        Debug "LastRequestStartLine: " + CkRest::ckLastRequestStartLine(rest)
        Debug "LastRequestHeader: " + CkRest::ckLastRequestHeader(rest)
        CkRest::ckDispose(rest)
        CkAuthAzureStorage::ckDispose(azAuth)
        ProcedureReturn
    EndIf

    Debug "Successfully deleted the blob!"


    CkRest::ckDispose(rest)
    CkAuthAzureStorage::ckDispose(azAuth)


    ProcedureReturn
EndProcedure