PowerShell 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>'

PowerShell Example

[Reflection.Assembly]::LoadFile("C:\myAssemblies\ChilkatDotNet2.dll")

$rest = New-Object Chilkat.Rest

$authAws = New-Object Chilkat.AuthAws
$authAws.AccessKey = "AWS_ACCESS_KEY"
$authAws.SecretKey = "AWS_SECRET_KEY"
$authAws.Region = "us-east-1"
$authAws.ServiceName = "s3"
$rest.SetAuthAws($authAws)

#  URL: https://chilkat100.s3.amazonaws.com/starfish.jpg?tagging
$bTls = $true
$port = 443
$bAutoReconnect = $true
$success = $rest.Connect("chilkat100.s3.amazonaws.com",$port,$bTls,$bAutoReconnect)
if ($success -ne $true) {
    $("ConnectFailReason: " + $rest.ConnectFailReason)
    $($rest.LastErrorText)
    exit
}

#  See the Online Tool for Generating XML Creation Code
$xml = New-Object Chilkat.Xml
$xml.Tag = "Tagging"
$xml.UpdateChildContent("TagSet|Tag|Key","animal")
$xml.UpdateChildContent("TagSet|Tag|Value","starfish")

$sbRequestBody = New-Object Chilkat.StringBuilder
$xml.GetXmlSb($sbRequestBody)
$sbResponseBody = New-Object Chilkat.StringBuilder
$success = $rest.FullRequestSb("PUT","/starfish.jpg?tagging",$sbRequestBody,$sbResponseBody)
if ($success -ne $true) {
    $($rest.LastErrorText)
    exit
}

$respStatusCode = $rest.ResponseStatusCode
if ($respStatusCode -ge 400) {
    $("Response Status Code = " + $respStatusCode)
    $("Response Header:")
    $($rest.ResponseHeader)
    $("Response Body:")
    $($sbResponseBody.GetAsString())
    exit
}