VBScript AWS S3: Add a Set of Tags to an S3 Object

Back to Index

Adds a set of tags to an existing S3 object. This example adds tags to the object named "starfish.jpg" located in the bucket "chilkat100".

Documentation: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUTtagging.html

CURL Command

curl -X PUT https://chilkat100.s3.amazonaws.com/starfish.jpg?tagging \
  -d '<Tagging>
  <TagSet>
     <Tag>
       <Key>animal</Key>
       <Value>starfish</Value>
     </Tag>
  </TagSet>
</Tagging>'

VBScript Example

Dim fso, outFile
Set fso = CreateObject("Scripting.FileSystemObject")
Set outFile = fso.CreateTextFile("output.txt", True)

set rest = CreateObject("Chilkat_9_5_0.Rest")

set authAws = CreateObject("Chilkat_9_5_0.AuthAws")
authAws.AccessKey = "AWS_ACCESS_KEY"
authAws.SecretKey = "AWS_SECRET_KEY"
authAws.Region = "us-east-1"
authAws.ServiceName = "s3"
success = rest.SetAuthAws(authAws)

'  URL: https://chilkat100.s3.amazonaws.com/starfish.jpg?tagging
bTls = 1
port = 443
bAutoReconnect = 1
success = rest.Connect("chilkat100.s3.amazonaws.com",port,bTls,bAutoReconnect)
If (success <> 1) Then
    outFile.WriteLine("ConnectFailReason: " & rest.ConnectFailReason)
    outFile.WriteLine(rest.LastErrorText)
    WScript.Quit
End If

'  See the Online Tool for Generating XML Creation Code
set xml = CreateObject("Chilkat_9_5_0.Xml")
xml.Tag = "Tagging"
xml.UpdateChildContent "TagSet|Tag|Key","animal"
xml.UpdateChildContent "TagSet|Tag|Value","starfish"

set sbRequestBody = CreateObject("Chilkat_9_5_0.StringBuilder")
success = xml.GetXmlSb(sbRequestBody)
set sbResponseBody = CreateObject("Chilkat_9_5_0.StringBuilder")
success = rest.FullRequestSb("PUT","/starfish.jpg?tagging",sbRequestBody,sbResponseBody)
If (success <> 1) Then
    outFile.WriteLine(rest.LastErrorText)
    WScript.Quit
End If

respStatusCode = rest.ResponseStatusCode
If (respStatusCode >= 400) Then
    outFile.WriteLine("Response Status Code = " & respStatusCode)
    outFile.WriteLine("Response Header:")
    outFile.WriteLine(rest.ResponseHeader)
    outFile.WriteLine("Response Body:")
    outFile.WriteLine(sbResponseBody.GetAsString())
    WScript.Quit
End If


outFile.Close