Go
Go
S3 Add Tags to an Object
See more Amazon S3 (new) Examples
Demonstrates how to add one or more tags to an S3 object.Chilkat Go Downloads
success := false
// This example 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 in the desired region.
// (for us-east-1, we use "s3.amazonaws.com", but for another region, such as us-west-2, we would use "s3-us-west-2.amazonaws.com")
bTls := true
port := 443
bAutoReconnect := true
success = rest.Connect("s3.amazonaws.com",port,bTls,bAutoReconnect)
// Provide AWS credentials.
authAws := chilkat.NewAuthAws()
authAws.SetAccessKey("AWS_ACCESS_KEY")
authAws.SetSecretKey("AWS_SECRET_KEY")
authAws.SetServiceName("s3")
authAws.SetRegion("us-east-1")
rest.SetAuthAws(authAws)
// Set the bucket name via the HOST header.
// In this case, the bucket name is "chilkat100".
// Note that the Host header should use "bucketName.s3.amazonaws.com", not "bucketName.s3-us-east-1.amazonaws.com"
// The same applies to aother regions. The Host header should simply be <bucketName>.s3.amazonaws.com regardless of the region.
rest.SetHost("chilkat100.s3.amazonaws.com")
xml := chilkat.NewXml()
xml.SetTag("Tagging")
xml.UpdateChildContent("TagSet|Tag|Key","plant")
xml.UpdateChildContent("TagSet|Tag|Value","chili pepper")
sbRequestBody := chilkat.NewStringBuilder()
xml.GetXmlSb(sbRequestBody)
// It is important to add the terminating "=" after the "?tagging".
sbResponse := chilkat.NewStringBuilder()
success = rest.FullRequestSb("PUT","/chiliPepper.gif?tagging=",sbRequestBody,sbResponse)
if success == false {
fmt.Println(rest.LastErrorText())
rest.DisposeRest()
authAws.DisposeAuthAws()
xml.DisposeXml()
sbRequestBody.DisposeStringBuilder()
sbResponse.DisposeStringBuilder()
return
}
fmt.Println("Response status code: ", rest.ResponseStatusCode())
// When successful, the S3 Storage service will respond with a 200 response code,
// with an XML body.
if rest.ResponseStatusCode() != 200 {
// Examine the request/response to see what happened.
fmt.Println("response status code = ", rest.ResponseStatusCode())
fmt.Println("response status text = ", rest.ResponseStatusText())
fmt.Println("response header: ", rest.ResponseHeader())
fmt.Println("response body: ", *sbResponse.GetAsString())
fmt.Println("---")
fmt.Println("LastRequestStartLine: ", rest.LastRequestStartLine())
fmt.Println("LastRequestHeader: ", rest.LastRequestHeader())
}
fmt.Println(*sbResponse.GetAsString())
fmt.Println("Success.")
rest.DisposeRest()
authAws.DisposeAuthAws()
xml.DisposeXml()
sbRequestBody.DisposeStringBuilder()
sbResponse.DisposeStringBuilder()