Sample code for 30+ languages & platforms
Java

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 Java Downloads

Chilkat2 Java
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.Http;
import com.chilkatsoft.chilkat2.Xml;

public class ChilkatExample {

    public static void main(String[] args) {
        // This example assumes the Chilkat HTTP API to have been previously unlocked.
        // See Global Unlock Sample for sample code.

        Http http = new Http();

        // Insert your access key here:
        http.setAwsAccessKey("AWS_ACCESS_KEY");

        // Insert your secret key here:
        http.setAwsSecretKey("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
        String strXml;
        try {
            strXml = http.s3ListBucketObjects("chilkat100?prefix=images/&delimiter=/");
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        System.out.println("Response status code = " + http.getLastStatus());

        Xml xml = new Xml();
        try {
            xml.loadXml(strXml);
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        // 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.getLastStatus() != 200) {
            System.out.println(xml.getXml());
            System.out.println("Failed.");
            return;
        }

        // A sample response is shown below.
        System.out.println(xml.getXml());
        System.out.println("----");

        // 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>

        String Prefix = "";

        // The XML can be parsed like this:
        int i = 0;
        int count_i = xml.numChildrenHavingTag("CommonPrefixes");
        while (i < count_i) {
            xml.setI(i);
            Prefix = xml.getChildContent("CommonPrefixes[i]|Prefix");
            System.out.println("Prefix = " + Prefix);
            i = i + 1;
        }
    }
}