Swift
Swift
S3 Find Bucket Region
See more Amazon S3 (new) Examples
Demonstrates how to find out the region of an S3 bucket.Chilkat Swift Downloads
func chilkatTest() {
var success: Bool = false
// This 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 using the correct region (in this example, "us-west-2")
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)
// 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)
// 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.host = "chilkat.qa.s3.amazonaws.com"
// Send the GET request to query the bucket location.
var strResult: String? = rest.fullRequestNoBody(httpVerb: "GET", uriPath: "/?location")
if rest.lastMethodSuccess != true {
print("\(rest.lastErrorText!)")
return
}
var responseStatusCode: Int = rest.responseStatusCode.intValue
print("Response status code = \(responseStatusCode)")
if responseStatusCode != 200 {
print("\(rest.responseHeader!)")
print("\(strResult!)")
print("Failed.")
return
}
print("\(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
let xml = CkoXml()!
success = xml.load(xmlData: strResult)
print("region = \(xml.content!)")
}