すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:オブジェクトタグの取得 (PHP SDK V1)

最終更新日:Nov 29, 2025

オブジェクトにタグを設定した後、オブジェクトのタグ情報を取得できます。 バケットでバージョン管理が有効になっている場合、Object Storage Service (OSS) はデフォルトでオブジェクトの現在のバージョンのタグを取得します。 特定のバージョンのタグを取得するには、オブジェクトのバージョン ID (versionId) を指定します。

説明
  • オブジェクトタグ付けでは、キーと値のペアを使用してオブジェクトにタグを付けます。 オブジェクトタグ付けの詳細については、「オブジェクトタグ付け」をご参照ください。

  • オブジェクトタグの取得方法の詳細については、「GetObjectTagging」をご参照ください。

注意事項

  • このトピックでは、中国 (杭州) リージョンのパブリックエンドポイントを使用します。 同じリージョン内の他の Alibaba Cloud サービスから OSS にアクセスするには、内部エンドポイントを使用します。 サポートされているリージョンとエンドポイントの詳細については、「リージョンとエンドポイント」をご参照ください。

  • このトピックでは、OSS エンドポイントを使用して OSSClient インスタンスを作成します。 カスタムドメイン名または Security Token Service (STS) を使用して OSSClient インスタンスを作成する場合は、「OssClient インスタンスの作成」をご参照ください。

  • オブジェクトタグを取得するには、oss:GetObjectTagging 権限が必要です。 詳細については、「RAM ユーザーへのカスタムアクセスポリシーの付与」をご参照ください。

オブジェクトタグの取得

バケットでバージョン管理が無効になっている場合、オブジェクトのタグ情報を取得できます。 バケットでバージョン管理が有効になっている場合、OSS はデフォルトでオブジェクトの現在のバージョンのタグを取得します。

次のコードは、examplebucket バケットの exampledir フォルダにある exampleobject.txt ファイルのタグを取得する方法を示しています。

<?php
if (is_file(__DIR__ . '/../autoload.php')) {
    require_once __DIR__ . '/../autoload.php';
}
if (is_file(__DIR__ . '/../vendor/autoload.php')) {
    require_once __DIR__ . '/../vendor/autoload.php';
}

use OSS\Credentials\EnvironmentVariableCredentialsProvider;
use OSS\OssClient;
use OSS\CoreOssException;

// 環境変数からアクセス認証情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。 
$provider = new EnvironmentVariableCredentialsProvider();
// バケットが配置されているリージョンのエンドポイントに yourEndpoint を設定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
$endpoint = "yourEndpoint";
// バケット名を設定します。 例: examplebucket。
$bucket = "examplebucket";
// オブジェクトの完全なパスを設定します。 例: exampledir/exampleobject.txt。 完全なパスにバケット名を含めることはできません。
$object = "exampledir/exampleobject.txt";

$config = array(
        "provider" => $provider,
        "endpoint" => $endpoint,
        "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
        "region"=> "cn-hangzhou"
    );
    $ossClient = new OssClient($config);

try {
    // オブジェクトタグを取得します。
    $config = $ossClient->getObjectTagging($bucket, $object);
    printf($object." tags are:".$config->serializeToXml(). "\n");
} catch (OssException $e) {
    printf($e->getMessage() . "\n");
    return;
}

特定のオブジェクトバージョンのタグの取得

バケットでバージョン管理が有効になっている場合、オブジェクトのバージョン ID (versionId) を指定することで、オブジェクトの特定のバージョンのタグを取得できます。

次のコードは、examplebucket バケットの exampledir フォルダにある exampleobject.txt ファイルの特定のバージョンのタグを取得する方法を示しています。

説明

バージョン ID の取得方法の詳細については、「オブジェクトのリスト (PHP SDK V1)」をご参照ください。

<?php
if (is_file(__DIR__ . '/../autoload.php')) {
    require_once __DIR__ . '/../autoload.php';
}
if (is_file(__DIR__ . '/../vendor/autoload.php')) {
    require_once __DIR__ . '/../vendor/autoload.php';
}

use OSS\Credentials\EnvironmentVariableCredentialsProvider;
use OSS\OssClient;
use OSS\CoreOssException;

// 環境変数からアクセス認証情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。 
$provider = new EnvironmentVariableCredentialsProvider();
// バケットが配置されているリージョンのエンドポイントに yourEndpoint を設定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
$endpoint = "yourEndpoint";
// バケット名を設定します。 例: examplebucket。
$bucket = "examplebucket";
// オブジェクトの完全なパスを設定します。 例: exampledir/exampleobject.txt。 完全なパスにバケット名を含めることはできません。
$object = "exampledir/exampleobject.txt";
// オブジェクトのバージョン ID を設定します。
$options = array(
    'versionId'=>'CAEQMxiBgICAof2D0BYiIDJhMGE3N2M1YTI1NDQzOGY5NTkyNTI3MGYyMzJm****'
);

$config = array(
        "provider" => $provider,
        "endpoint" => $endpoint,
        "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
        "region"=> "cn-hangzhou"
    );
    $ossClient = new OssClient($config);

try {
   // オブジェクトタグを取得します。
   $config = $ossClient->getObjectTagging($bucket, $object,$options);
   printf($object." tags are:".$config->serializeToXml(). "\n");
} catch (OssException $e) {
   printf($e->getMessage() . "\n");
   return;
}