PureBasic
PureBasic
Wasabi List Buckets
See more Wasabi Examples
Demonstrates how to list Wasabi buckets.Chilkat PureBasic Downloads
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