Sample code for 30+ languages & platforms
Swift

S3 List Buckets (using Chilkat REST)

See more Amazon S3 (new) Examples

Demonstrates how to fetch a list of S3 buckets.

Chilkat Swift Downloads

Swift

func chilkatTest() {
    var success: Bool = false

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

    let rest = CkoRest()!

    // Connect to the Amazon AWS REST server.
    var bTls: Bool = true
    var port: Int = 443
    var bAutoReconnect: Bool = true
    success = rest.connect(hostname: "s3.amazonaws.com", port: port, tls: bTls, autoReconnect: 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.
    let authAws = CkoAuthAws()!
    authAws.accessKey = "AWS_ACCESS_KEY"
    authAws.secretKey = "AWS_SECRET_KEY"
    authAws.serviceName = "s3"
    success = rest.setAuthAws(authProvider: authAws)

    let sbResponse = CkoStringBuilder()!
    success = rest.fullRequestNoBodySb(httpVerb: "GET", uriPath: "/", sb: sbResponse)
    if success == false {
        print("\(rest.lastErrorText!)")
        return
    }

    var statusCode: Int = rest.responseStatusCode.intValue
    print("Response status code = \(statusCode)")

    let xml = CkoXml()!
    xml.loadSb(sb: sbResponse, autoTrim: true)
    print("\(xml.getXml()!)")

    if statusCode != 200 {
        print("Failed.  See error information in the XML.")
        return
    }

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

    var Name: String?
    var CreationDate: String?

    var i: Int = 0
    var count_i: Int = xml.numChildrenHavingTag(tag: "Buckets|Bucket").intValue
    while i < count_i {
        xml.i = i
        Name = xml.getChildContent(tagPath: "Buckets|Bucket[i]|Name")
        CreationDate = xml.getChildContent(tagPath: "Buckets|Bucket[i]|CreationDate")
        print("\(Name!)")
        print("\(CreationDate!)")
        print("--")
        i = i + 1
    }


}