PowerBuilder
PowerBuilder
S3 List Bucket Objects (Bucket-in-Path)
See more Amazon S3 (new) Examples
Demonstrates how to fetch a list of objects in an S3 bucket, but using the bucket-in-path request format instead of putting the bucket name in the HOST header.Chilkat PowerBuilder Downloads
integer li_rc
integer li_Success
oleobject loo_Rest
integer li_BTls
integer li_Port
integer li_BAutoReconnect
oleobject loo_AuthAws
oleobject loo_SbResponse
integer li_StatusCode
oleobject loo_Xml
string ls_Key
string ls_LastModified
string ls_ETag
string ls_SizeDecimalStr
string ls_ID
string ls_DisplayName
string ls_StorageClass
string ls_Name
integer li_MaxKeys
string ls_IsTruncated
integer i
integer li_Count_i
li_Success = 0
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
loo_Rest = create oleobject
li_rc = loo_Rest.ConnectToNewObject("Chilkat.Rest")
if li_rc < 0 then
destroy loo_Rest
MessageBox("Error","Connecting to COM object failed")
return
end if
// Connect to the Amazon AWS REST server.
li_BTls = 1
li_Port = 443
li_BAutoReconnect = 1
li_Success = loo_Rest.Connect("s3.amazonaws.com",li_Port,li_BTls,li_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.
loo_AuthAws = create oleobject
li_rc = loo_AuthAws.ConnectToNewObject("Chilkat.AuthAws")
loo_AuthAws.AccessKey = "AWS_ACCESS_KEY"
loo_AuthAws.SecretKey = "AWS_SECRET_KEY"
loo_AuthAws.ServiceName = "s3"
li_Success = loo_Rest.SetAuthAws(loo_AuthAws)
// The bucket name is "chilkat100"
loo_SbResponse = create oleobject
li_rc = loo_SbResponse.ConnectToNewObject("Chilkat.StringBuilder")
li_Success = loo_Rest.FullRequestNoBodySb("GET","/chilkat100",loo_SbResponse)
if li_Success <> 1 then
Write-Debug loo_Rest.LastErrorText
destroy loo_Rest
destroy loo_AuthAws
destroy loo_SbResponse
return
end if
li_StatusCode = loo_Rest.ResponseStatusCode
Write-Debug "Response status code = " + string(li_StatusCode)
loo_Xml = create oleobject
li_rc = loo_Xml.ConnectToNewObject("Chilkat.Xml")
loo_Xml.LoadSb(loo_SbResponse,1)
Write-Debug loo_Xml.GetXml()
if li_StatusCode <> 200 then
Write-Debug "Failed. See error information in the XML."
destroy loo_Rest
destroy loo_AuthAws
destroy loo_SbResponse
destroy loo_Xml
return
end if
// Use this online tool to generate code from sample XML:
// Generate Code to Create XML
ls_Name = loo_Xml.GetChildContent("Name")
li_MaxKeys = loo_Xml.GetChildIntValue("MaxKeys")
ls_IsTruncated = loo_Xml.GetChildContent("IsTruncated")
i = 0
li_Count_i = loo_Xml.NumChildrenHavingTag("Contents")
do while i < li_Count_i
loo_Xml.I = i
ls_Key = loo_Xml.GetChildContent("Contents[i]|Key")
ls_LastModified = loo_Xml.GetChildContent("Contents[i]|LastModified")
ls_ETag = loo_Xml.GetChildContent("Contents[i]|ETag")
ls_SizeDecimalStr = loo_Xml.GetChildContent("Contents[i]|Size")
ls_ID = loo_Xml.GetChildContent("Contents[i]|Owner|ID")
ls_DisplayName = loo_Xml.GetChildContent("Contents[i]|Owner|DisplayName")
ls_StorageClass = loo_Xml.GetChildContent("Contents[i]|StorageClass")
i = i + 1
loop
Write-Debug "Success."
destroy loo_Rest
destroy loo_AuthAws
destroy loo_SbResponse
destroy loo_Xml