Sample code for 30+ languages & platforms
PureBasic

Wasabi List Buckets

See more Wasabi Examples

Demonstrates how to list Wasabi buckets.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkXml.pb"
IncludeFile "CkHttp.pb"

Procedure ChilkatExample()

    success.i = 0

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

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

    ; Insert your access key here:
    CkHttp::setCkAwsAccessKey(http, "access-key")

    ; Insert your secret key here:
    CkHttp::setCkAwsSecretKey(http, "secret-key")

    CkHttp::setCkAwsEndpoint(http, "s3.wasabisys.com")

    bucketsXml.s = CkHttp::ckS3_ListBuckets(http)

    If CkHttp::ckLastMethodSuccess(http) <> 1
        Debug CkHttp::ckLastErrorText(http)
        CkHttp::ckDispose(http)
        ProcedureReturn
    EndIf

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

    CkXml::ckLoadXml(xml,bucketsXml)
    Debug CkXml::ckGetXml(xml)

    ; 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"?>
    ; <ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    ;     <Owner>
    ;         <ID>1039F31570DBC320E89D391632FCA06FE6D10CBB2ADBD0BF6439BB1DA0C3FAD6</ID>
    ;         <DisplayName>admin</DisplayName>
    ;     </Owner>
    ;     <Buckets>
    ;         <Bucket>
    ;             <Name>chilkat</Name>
    ;             <CreationDate>2021-10-26T12:39:44.000Z</CreationDate>
    ;         </Bucket>
    ;         <Bucket>
    ;             <Name>chilkat-wasabi-testbucket</Name>
    ;             <CreationDate>2021-10-27T21:07:40.000Z</CreationDate>
    ;         </Bucket>
    ;     </Buckets>
    ; </ListAllMyBucketsResult>

    Name.s
    CreationDate.s

    ListAllMyBucketsResult_xmlns.s = CkXml::ckGetAttrValue(xml,"xmlns")
    ID.s = CkXml::ckGetChildContent(xml,"Owner|ID")
    DisplayName.s = CkXml::ckGetChildContent(xml,"Owner|DisplayName")
    i.i = 0
    count_i.i = CkXml::ckNumChildrenHavingTag(xml,"Buckets|Bucket")
    While i < count_i
        CkXml::setCkI(xml, i)
        Name = CkXml::ckGetChildContent(xml,"Buckets|Bucket[i]|Name")
        CreationDate = CkXml::ckGetChildContent(xml,"Buckets|Bucket[i]|CreationDate")
        i = i + 1
    Wend


    CkHttp::ckDispose(http)
    CkXml::ckDispose(xml)


    ProcedureReturn
EndProcedure