Sample code for 30+ languages & platforms
AutoIt

Wasabi List Bucket Objects

See more Wasabi Examples

Demonstrates how to download and parse XML for the list of objects in a bucket.

Chilkat AutoIt Downloads

AutoIt
Local $bSuccess = False

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

$oHttp = ObjCreate("Chilkat.Http")

;  Insert your access key here:
$oHttp.AwsAccessKey = "access-key"

;  Insert your secret key here:
$oHttp.AwsSecretKey = "secret-key"

;  Use the endpoint matching the bucket's region.
$oHttp.AwsEndpoint = "s3.us-west-1.wasabisys.com"

Local $sBucketName = "chilkattest"

Local $strXml = $oHttp.S3_ListBucketObjects($sBucketName)
If ($oHttp.LastMethodSuccess <> True) Then
    ConsoleWrite($oHttp.LastErrorText & @CRLF)
    Exit
EndIf

ConsoleWrite("Response status code = " & $oHttp.LastStatus & @CRLF)

$oXml = ObjCreate("Chilkat.Xml")
$bSuccess = $oXml.LoadXml($strXml)
If ($bSuccess <> True) Then
    ConsoleWrite($oXml.LastErrorText & @CRLF)
    Exit
EndIf

;  If the response status code was not 200, then the XML response is not a 
;  listing of objects, but instead contains error information.
If ($oHttp.LastStatus <> 200) Then
    ConsoleWrite($oXml.GetXml() & @CRLF)
    ConsoleWrite("Failed." & @CRLF)
    Exit
EndIf

;  A sample response is shown below.
ConsoleWrite($oXml.GetXml() & @CRLF)
ConsoleWrite("----" & @CRLF)

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

;  <?xml version="1.0" encoding="UTF-8"?>
;  <ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
;      <Name>chilkattest</Name>
;      <Prefix/>
;      <Marker/>
;      <MaxKeys>1000</MaxKeys>
;      <IsTruncated>false</IsTruncated>
;      <Contents>
;          <Key>orchard.json</Key>
;          <LastModified>2021-10-27T22:58:49.000Z</LastModified>
;          <ETag>&quot;303fb46cf341094fef6274b7789cd6aa&quot;</ETag>
;          <Size>22</Size>
;          <Owner>
;              <ID>1039F31570DBC320E89D391632FCA06FE6D10CBB2ADBD0BF6439BB1DA0C3FAD6</ID>
;              <DisplayName>admin</DisplayName>
;          </Owner>
;          <StorageClass>STANDARD</StorageClass>
;      </Contents>
;      <Contents>
;          <Key>seahorse.jpg</Key>
;          <LastModified>2021-10-27T22:35:29.000Z</LastModified>
;          <ETag>&quot;a8551f0a5437f43a796fca7623ee9232&quot;</ETag>
;          <Size>24388</Size>
;          <Owner>
;              <ID>1039F31570DBC320E89D391632FCA06FE6D10CBB2ADBD0BF6439BB1DA0C3FAD6</ID>
;              <DisplayName>admin</DisplayName>
;          </Owner>
;          <StorageClass>STANDARD</StorageClass>
;      </Contents>
;      <Contents>
;          <Key>seahorse2.jpg</Key>
;          <LastModified>2021-10-27T22:03:51.000Z</LastModified>
;          <ETag>&quot;a8551f0a5437f43a796fca7623ee9232&quot;</ETag>
;          <Size>24388</Size>
;          <Owner>
;              <ID>1039F31570DBC320E89D391632FCA06FE6D10CBB2ADBD0BF6439BB1DA0C3FAD6</ID>
;              <DisplayName>admin</DisplayName>
;          </Owner>
;          <StorageClass>STANDARD</StorageClass>
;      </Contents>
;  </ListBucketResult>

Local $sKey
Local $sLastModified
Local $sETag
Local $sSizeDecimalStr
Local $sID
Local $sDisplayName
Local $sStorageClass

Local $sListBucketResult_xmlns = $oXml.GetAttrValue("xmlns")
Local $sName = $oXml.GetChildContent("Name")
Local $iMaxKeys = $oXml.GetChildIntValue("MaxKeys")
Local $sIsTruncated = $oXml.GetChildContent("IsTruncated")
Local $i = 0
Local $iCount_i = $oXml.NumChildrenHavingTag("Contents")
While $i < $iCount_i
    $oXml.I = $i
    $sKey = $oXml.GetChildContent("Contents[i]|Key")
    $sLastModified = $oXml.GetChildContent("Contents[i]|LastModified")
    $sETag = $oXml.GetChildContent("Contents[i]|ETag")
    $sSizeDecimalStr = $oXml.GetChildContent("Contents[i]|Size")
    $sID = $oXml.GetChildContent("Contents[i]|Owner|ID")
    $sDisplayName = $oXml.GetChildContent("Contents[i]|Owner|DisplayName")
    $sStorageClass = $oXml.GetChildContent("Contents[i]|StorageClass")
    ConsoleWrite($i & ": " & $sKey & @CRLF)
    $i = $i + 1
Wend