Sample code for 30+ languages & platforms
Go

S3 Find Bucket Region

See more Amazon S3 (new) Examples

Demonstrates how to find out the region of an S3 bucket.

Chilkat Go Downloads

Go
    success := false

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

    rest := chilkat.NewRest()

    // Connect to the Amazon AWS REST server using the correct region (in this example, "us-west-2")
    bTls := true
    port := 443
    bAutoReconnect := true
    success = rest.Connect("s3.amazonaws.com",port,bTls,bAutoReconnect)

    // Provide AWS credentials for the REST call.
    authAws := chilkat.NewAuthAws()
    authAws.SetAccessKey("AWS_ACCESS_KEY")
    authAws.SetSecretKey("AWS_SECRET_KEY")
    authAws.SetServiceName("s3")
    success = rest.SetAuthAws(authAws)

    // The bucket name we want to know about is set in the HOST header.
    // In this example, we want to find the region for the "chilkat.qa" bucket.
    rest.SetHost("chilkat.qa.s3.amazonaws.com")

    // Send the GET request to query the bucket location.
    strResult := rest.FullRequestNoBody("GET","/?location")
    if rest.LastMethodSuccess() != true {
        fmt.Println(rest.LastErrorText())
        rest.DisposeRest()
        authAws.DisposeAuthAws()
        return
    }

    responseStatusCode := rest.ResponseStatusCode()
    fmt.Println("Response status code = ", responseStatusCode)
    if responseStatusCode != 200 {
        fmt.Println(rest.ResponseHeader())
        fmt.Println(*strResult)
        fmt.Println("Failed.")
        rest.DisposeRest()
        authAws.DisposeAuthAws()
        return
    }

    fmt.Println(*strResult)

    // The result contains XML like this:
    // <?xml version="1.0" encoding="UTF-8"?>
    // <LocationConstraint xmlns="http://s3.amazonaws.com/doc/2006-03-01/">us-west-2</LocationConstraint>

    // Get the "us-west-2" from the XML
    xml := chilkat.NewXml()
    success = xml.LoadXml(*strResult)
    fmt.Println("region = ", xml.Content())

    rest.DisposeRest()
    authAws.DisposeAuthAws()
    xml.DisposeXml()