PowerBuilder
PowerBuilder
S3 List Buckets using an STS Session Token
See more AWS Security Token Service Examples
This is an example showing how to use an STS session token in an Amazon AWS request. This example will list S3 buckets using a previously obtained session token.Chilkat PowerBuilder Downloads
integer li_rc
integer li_Success
oleobject loo_XmlToken
oleobject loo_Rest
integer li_BTls
integer li_Port
integer li_BAutoReconnect
oleobject loo_AuthAws
oleobject loo_SbResponse
integer li_StatusCode
oleobject loo_Xml
li_Success = 0
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
// See Get AWS STS Session Token for sample code to get the session token XML.
loo_XmlToken = create oleobject
li_rc = loo_XmlToken.ConnectToNewObject("Chilkat.Xml")
if li_rc < 0 then
destroy loo_XmlToken
MessageBox("Error","Connecting to COM object failed")
return
end if
li_Success = loo_XmlToken.LoadXmlFile("qa_data/tokens/aws_session_token.xml")
if li_Success = 0 then
Write-Debug loo_XmlToken.LastErrorText
destroy loo_XmlToken
return
end if
loo_Rest = create oleobject
li_rc = loo_Rest.ConnectToNewObject("Chilkat.Rest")
// 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)
// Provide AWS credentials for the REST call.
loo_AuthAws = create oleobject
li_rc = loo_AuthAws.ConnectToNewObject("Chilkat.AuthAws")
// The purpose of this example is to show how to use the temporary AccessKeyId, SecretAccessKey, and SessionToken.
loo_AuthAws.AccessKey = loo_XmlToken.GetChildContent("GetSessionTokenResult|Credentials|AccessKeyId")
loo_AuthAws.SecretKey = loo_XmlToken.GetChildContent("GetSessionTokenResult|Credentials|SecretAccessKey")
loo_AuthAws.ServiceName = "s3"
li_Success = loo_Rest.SetAuthAws(loo_AuthAws)
loo_Rest.AddQueryParam("X-Amz-Security-Token",loo_XmlToken.GetChildContent("GetSessionTokenResult|Credentials|SessionToken"))
loo_SbResponse = create oleobject
li_rc = loo_SbResponse.ConnectToNewObject("Chilkat.StringBuilder")
li_Success = loo_Rest.FullRequestNoBodySb("GET","/",loo_SbResponse)
if li_Success <> 1 then
Write-Debug loo_Rest.LastErrorText
destroy loo_XmlToken
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_XmlToken
destroy loo_Rest
destroy loo_AuthAws
destroy loo_SbResponse
destroy loo_Xml
return
end if
destroy loo_XmlToken
destroy loo_Rest
destroy loo_AuthAws
destroy loo_SbResponse
destroy loo_Xml