Sample code for 30+ languages & platforms
AutoIt

S3 List Bucket Objects (using Chilkat REST)

See more Amazon S3 (new) Examples

Demonstrates how to fetch a list of objects in an S3 bucket.

Chilkat AutoIt Downloads

AutoIt
Local $bSuccess = False

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

$oRest = ObjCreate("Chilkat.Rest")

; Connect to the Amazon AWS REST server.
Local $bTls = True
Local $iPort = 443
Local $bAutoReconnect = True
$bSuccess = $oRest.Connect("s3.amazonaws.com",$iPort,$bTls,$bAutoReconnect)

; ----------------------------------------------------------------------------
; Important: For buckets created in regions outside us-east-1,
; there are three important changes that need to be made.
; See Working with S3 Buckets in Non-us-east-1 Regions for the details.
; ----------------------------------------------------------------------------

; Provide AWS credentials for the REST call.
$oAuthAws = ObjCreate("Chilkat.AuthAws")
$oAuthAws.AccessKey = "AWS_ACCESS_KEY"
$oAuthAws.SecretKey = "AWS_SECRET_KEY"
$oAuthAws.ServiceName = "s3"
$bSuccess = $oRest.SetAuthAws($oAuthAws)

;  Set the bucket name via the HOST header.
;  In this case, the bucket name is "chilkat100".
$oRest.Host = "chilkat100.s3.amazonaws.com"

$oSbResponse = ObjCreate("Chilkat.StringBuilder")
$bSuccess = $oRest.FullRequestNoBodySb("GET","/",$oSbResponse)
If ($bSuccess = False) Then
    ConsoleWrite($oRest.LastErrorText & @CRLF)
    Exit
EndIf

Local $iStatusCode = $oRest.ResponseStatusCode
ConsoleWrite("Response status code = " & $iStatusCode & @CRLF)

$oXml = ObjCreate("Chilkat.Xml")
$oXml.LoadSb($oSbResponse,True)
ConsoleWrite($oXml.GetXml() & @CRLF)

If ($iStatusCode <> 200) Then
    ConsoleWrite("Failed.  See error information in the XML." & @CRLF)
    Exit
EndIf

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

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

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")
    $i = $i + 1
Wend