Sample code for 30+ languages & platforms
Visual Basic 6.0

S3 Get Bucket Objects with CommonPrefixes

See more Amazon S3 Examples

Demonstrates how to get a list of bucket objects using the prefix and delimiter query params to get an XML result with CommonPrefixes.

Chilkat Visual Basic 6.0 Downloads

Visual Basic 6.0
Dim success As Long
success = 0

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

Dim http As New ChilkatHttp

' Insert your access key here:
http.AwsAccessKey = "AWS_ACCESS_KEY"

' Insert your secret key here:
http.AwsSecretKey = "AWS_SECRET_KEY"

' In this example, my bucket is "chilkat100".
' It contains a number of folders, one of which is named "images".
' I want to get a list of all sub-folders under the "images" folder
Dim strXml As String
strXml = http.S3_ListBucketObjects("chilkat100?prefix=images/&delimiter=/")
If (http.LastMethodSuccess <> 1) Then
    Debug.Print http.LastErrorText
    Exit Sub
End If

Debug.Print "Response status code = " & http.LastStatus

Dim xml As New ChilkatXml
success = xml.LoadXml(strXml)
If (success <> 1) Then
    Debug.Print xml.LastErrorText
    Exit Sub
End If

' If the response status code was not 200, then the XML response is not a 
' listing of objects, but instead contains error information.
If (http.LastStatus <> 200) Then
    Debug.Print xml.GetXml()
    Debug.Print "Failed."
    Exit Sub
End If

' A sample response is shown below.
Debug.Print xml.GetXml()
Debug.Print "----"

' Here is the list of sub-folders (i.e. CommonPrefixes)

' <?xml version="1.0" encoding="UTF-8"?>
' <ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
'     <Name>chilkat100</Name>
'     <Prefix>images/</Prefix>
'     <Marker/>
'     <MaxKeys>1000</MaxKeys>
'     <Delimiter>/</Delimiter>
'     <IsTruncated>false</IsTruncated>
'     <CommonPrefixes>
'         <Prefix>images/africa/</Prefix>
'     </CommonPrefixes>
'     <CommonPrefixes>
'         <Prefix>images/sea_creatures/</Prefix>
'     </CommonPrefixes>
' </ListBucketResult>

Dim Prefix As String

' The XML can be parsed like this:
Dim i As Long
i = 0
Dim count_i As Long
count_i = xml.NumChildrenHavingTag("CommonPrefixes")
Do While i < count_i
    xml.I = i
    Prefix = xml.GetChildContent("CommonPrefixes[i]|Prefix")
    Debug.Print "Prefix = " & Prefix
    i = i + 1
Loop