Sample code for 30+ languages & platforms
DataFlex

Backblaze S3 List Buckets

See more Backblaze S3 Examples

Demonstrates how to list Backblaze buckets.

The Chilkat S3 functions in the HTTP class are compatible with the Backblaze service. However, because of some specific issues, Chilkat v9.5.0.89 or later is needed.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoHttp
    String sBucketsXml
    Handle hoXml
    String sName
    String sCreationDate
    String sListAllMyBucketsResult_xmlns
    String sID
    Integer i
    Integer iCount_i
    String sTemp1
    Boolean bTemp1

    Move False To iSuccess

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

    Get Create (RefClass(cComChilkatHttp)) To hoHttp
    If (Not(IsComObjectCreated(hoHttp))) Begin
        Send CreateComObject of hoHttp
    End

    // keyID = Access Key ID or Access Key
    Set ComAwsAccessKey Of hoHttp To "access-key"

    // applicationKey = Secret Access Key or Secret Key
    Set ComAwsSecretKey Of hoHttp To "secret-key"

    // Region is the 2nd part of your S3 Endpoint
    Set ComAwsEndpoint Of hoHttp To "s3.us-west-002.backblazeb2.com"

    Get ComS3_ListBuckets Of hoHttp To sBucketsXml

    Get ComLastMethodSuccess Of hoHttp To bTemp1
    If (bTemp1 <> True) Begin
        Get ComLastErrorText Of hoHttp To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get Create (RefClass(cComChilkatXml)) To hoXml
    If (Not(IsComObjectCreated(hoXml))) Begin
        Send CreateComObject of hoXml
    End
    Get ComLoadXml Of hoXml sBucketsXml To iSuccess
    Get ComGetXml Of hoXml To sTemp1
    Showln sTemp1

    // Use this online tool to generate parsing code from sample XML: 
    // Generate Parsing Code from XML

    // Sample output:

    // <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    // <ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    //     <Owner>
    //         <ID>f2ebbc5f792c</ID>
    //         <DisplayName/>
    //     </Owner>
    //     <Buckets>
    //         <Bucket>
    //             <Name>chilkat</Name>
    //             <CreationDate>2021-10-30T14:17:30.004Z</CreationDate>
    //         </Bucket>
    //         <Bucket>
    //             <Name>chilkat-test</Name>
    //             <CreationDate>2021-10-30T14:25:52.556Z</CreationDate>
    //         </Bucket>
    //     </Buckets>
    // </ListAllMyBucketsResult>

    Get ComGetAttrValue Of hoXml "xmlns" To sListAllMyBucketsResult_xmlns
    Get ComGetChildContent Of hoXml "Owner|ID" To sID
    Move 0 To i
    Get ComNumChildrenHavingTag Of hoXml "Buckets|Bucket" To iCount_i
    While (i < iCount_i)
        Set ComI Of hoXml To i
        Get ComGetChildContent Of hoXml "Buckets|Bucket[i]|Name" To sName
        Get ComGetChildContent Of hoXml "Buckets|Bucket[i]|CreationDate" To sCreationDate
        Move (i + 1) To i
    Loop



End_Procedure