PHP Extension AWS S3: Get S3 Object Tags

Back to Index

Returns the tags associated with an object. This example gets the tags for the object named "starfish.jpg" located in the bucket "chilkat100".

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

CURL Command

curl -X GET https://chilkat100.s3.amazonaws.com/starfish.jpg?tagging

PHP Extension Example

<?php

// The version number (9_5_0) should match version of the Chilkat extension used, omitting the micro-version number.
// For example, if using Chilkat v9.5.0.48, then include as shown here:
include("chilkat_9_5_0.php");

$rest = new CkRest();

$authAws = new CkAuthAws();
$authAws->put_AccessKey('AWS_ACCESS_KEY');
$authAws->put_SecretKey('AWS_SECRET_KEY');
$authAws->put_Region('us-east-1');
$authAws->put_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 != true) {
    print 'ConnectFailReason: ' . $rest->get_ConnectFailReason() . "\n";
    print $rest->lastErrorText() . "\n";
    exit;
}

$sbResponseBody = new CkStringBuilder();
$success = $rest->FullRequestNoBodySb('GET','/starfish.jpg?tagging',$sbResponseBody);
if ($success != true) {
    print $rest->lastErrorText() . "\n";
    exit;
}

$respStatusCode = $rest->get_ResponseStatusCode();
if ($respStatusCode >= 400) {
    print 'Response Status Code = ' . $respStatusCode . "\n";
    print 'Response Header:' . "\n";
    print $rest->responseHeader() . "\n";
    print 'Response Body:' . "\n";
    print $sbResponseBody->getAsString() . "\n";
    exit;
}

$xmlResponse = new CkXml();
$xmlResponse->LoadSb($sbResponseBody,true);

//  See the Online Tool for Generating XML Parse Code

$Tagging_xmlns = $xmlResponse->getAttrValue('xmlns');
$i = 0;
$count_i = $xmlResponse->NumChildrenHavingTag('TagSet|Tag');
while ($i < $count_i) {
    $xmlResponse->put_I($i);
    $Key = $xmlResponse->getChildContent('TagSet|Tag[i]|Key');
    $Value = $xmlResponse->getChildContent('TagSet|Tag[i]|Value');
    $i = $i + 1;
}


?>

Sample XML Response Body

<?xml version="1.0" encoding="UTF-8" ?>
<Tagging xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <TagSet>
        <Tag>
            <Key>habitat</Key>
            <Value>ocean</Value>
        </Tag>
        <Tag>
            <Key>phylum</Key>
            <Value>Echinodermata</Value>
        </Tag>
        <Tag>
            <Key>animal</Key>
            <Value>starfish</Value>
        </Tag>
    </TagSet>
</Tagging>