オブジェクトにタグを設定した後、オブジェクトのタグ情報を取得できます。 バケットでバージョン管理が有効になっている場合、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;
}