タグを使用して、さまざまな目的で使用される Object Storage Service (OSS) バケットを識別し、これらのバケットを管理できます。
注意事項
このトピックでは、中国 (杭州) リージョンのパブリックエンドポイントを使用します。OSS と同じリージョンにある他の Alibaba Cloud サービスから OSS にアクセスする場合は、内部エンドポイントを使用してください。OSS のリージョンとエンドポイントの詳細については、リージョンとエンドポイントをご参照ください。
このトピックでは、OSS エンドポイントを使用して OSSClient インスタンスを作成します。カスタムドメイン名またはセキュリティトークンサービス (STS) を使用して OSSClient インスタンスを作成する場合は、初期化をご参照ください。
各バケットには、最大 20 個のタグ (キーと値のペア) を設定できます。
タグのキーと値は UTF-8 でエンコードする必要があります。
キーの長さは最大 64 文字です。大文字と小文字が区別され、空にすることはできません。キーを
http://、https://、またはAliyunで始めることはできません。これらのプレフィックスでは大文字と小文字は区別されません。タグの値は最大 128 文字で、空にすることもできます。
バケットへのタグの追加
次のコードは、examplebucket という名前のバケットにタグを設定する方法を示しています。
using Aliyun.OSS;
using Aliyun.OSS.Common;
// endpoint を、バケットが配置されているリージョンのエンドポイントに設定します。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
var endpoint = "yourEndpoint";
// 環境変数からアクセス認証情報を取得します。このコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// bucketName をバケットの名前に設定します (例: examplebucket)。
var bucketName = "examplebucket";
// region を、バケットが配置されているリージョンの ID に設定します。たとえば、バケットが中国 (杭州) リージョンにある場合、region を cn-hangzhou に設定します。
const string region = "cn-hangzhou";
// ClientConfiguration インスタンスを作成し、必要に応じてデフォルトのパラメーターを変更します。
var conf = new ClientConfiguration();
// 署名バージョン V4 を使用します。
conf.SignatureVersion = SignatureVersion.V4;
// OssClient インスタンスを作成します。
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
client.SetRegion(region);
try
{
// バケットにタグを追加します。
var setRequest = new SetBucketTaggingRequest(bucketName);
var tag1 = new Tag
{
Key = "project",
Value = "projectone"
};
var tag2 = new Tag
{
Key = "user",
Value = "jsmith"
};
setRequest.AddTag(tag1);
setRequest.AddTag(tag2);
client.SetBucketTagging(setRequest);
Console.WriteLine("Set bucket:{0} Tagging succeeded ", bucketName);
}
catch (OssException ex)
{
Console.WriteLine("Failed with error code: {0}; Error info: {1}. \nRequestID:{2}\tHostID:{3}",
ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId);
}
catch (Exception ex)
{
Console.WriteLine("Failed with error info: {0}", ex.Message);
}バケットのタグの照会
次のコードは、examplebucket という名前のバケットのタグを取得する方法を示しています。
using Aliyun.OSS;
using Aliyun.OSS.Common;
// endpoint を、バケットが配置されているリージョンのエンドポイントに設定します。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
var endpoint = "yourEndpoint";
// 環境変数からアクセス認証情報を取得します。このコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// bucketName をバケットの名前に設定します (例: examplebucket)。
var bucketName = "examplebucket";
// region を、バケットが配置されているリージョンの ID に設定します。たとえば、バケットが中国 (杭州) リージョンにある場合、region を cn-hangzhou に設定します。
const string region = "cn-hangzhou";
// ClientConfiguration インスタンスを作成し、必要に応じてデフォルトのパラメーターを変更します。
var conf = new ClientConfiguration();
// 署名バージョン V4 を使用します。
conf.SignatureVersion = SignatureVersion.V4;
// OssClient インスタンスを作成します。
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
client.SetRegion(region);
try
{
// バケットのタグを取得します。
var result = client.GetBucketTagging(bucketName);
Console.WriteLine("Get bucket:{0} tagging succeeded ", bucketName);
for (var i = 0; i < result.Tags.Count; i++) {
Console.WriteLine("bucket tagging key: {0}; bucket tagging value: {1}", result.Tags[i].Key, result.Tags[i].Value);
}
}
catch (OssException ex)
{
Console.WriteLine("Failed with error code: {0}; Error info: {1}. \nRequestID:{2}\tHostID:{3}",
ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId);
}
catch (Exception ex)
{
Console.WriteLine("Failed with error info: {0}", ex.Message);
}特定のタグを持つバケットの一覧表示
次のコードは、特定のタグを持つバケットを一覧表示する方法を示しています。
using Aliyun.OSS;
using Aliyun.OSS.Common;
// endpoint を、バケットが配置されているリージョンのエンドポイントに設定します。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
var endpoint = "yourEndpoint";
// 環境変数からアクセス認証情報を取得します。このコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// bucketName をバケットの名前に設定します (例: examplebucket)。
var bucketName = "examplebucket";
// region を、バケットが配置されているリージョンの ID に設定します。たとえば、バケットが中国 (杭州) リージョンにある場合、region を cn-hangzhou に設定します。
const string region = "cn-hangzhou";
// ClientConfiguration インスタンスを作成し、必要に応じてデフォルトのパラメーターを変更します。
var conf = new ClientConfiguration();
// 署名バージョン V4 を使用します。
conf.SignatureVersion = SignatureVersion.V4;
// OssClient インスタンスを作成します。
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
client.SetRegion(region);
try
{
// 特定のタグを持つバケットを一覧表示します。
var tag = new Tag
{
Key = "tag",
Value = "value"
};
var listRequest = new ListBucketsRequest();
listRequest.Tag = tag;
var result = client.ListBuckets(listRequest);
Console.WriteLine("list bucket:{0} succeeded ", bucketName);
foreach (var bucket in result.Buckets) {
Console.WriteLine("bucket name: {0}", bucket.Name);
}
}
catch (OssException ex)
{
Console.WriteLine("Failed with error code: {0}; Error info: {1}. \nRequestID:{2}\tHostID:{3}",
ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId);
}
catch (Exception ex)
{
Console.WriteLine("Failed with error info: {0}", ex.Message);
}バケットからのすべてのタグの削除
次のコードは、バケットからすべてのタグを削除する方法を示しています。
using Aliyun.OSS;
using Aliyun.OSS.Common;
// endpoint を、バケットが配置されているリージョンのエンドポイントに設定します。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
var endpoint = "yourEndpoint";
// 環境変数からアクセス認証情報を取得します。このコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// bucketName をバケットの名前に設定します (例: examplebucket)。
var bucketName = "examplebucket";
// region を、バケットが配置されているリージョンの ID に設定します。たとえば、バケットが中国 (杭州) リージョンにある場合、region を cn-hangzhou に設定します。
const string region = "cn-hangzhou";
// ClientConfiguration インスタンスを作成し、必要に応じてデフォルトのパラメーターを変更します。
var conf = new ClientConfiguration();
// 署名バージョン V4 を使用します。
conf.SignatureVersion = SignatureVersion.V4;
// OssClient インスタンスを作成します。
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
client.SetRegion(region);
try
{
// バケットからすべてのタグを削除します。
client.DeleteBucketTagging(bucketName);
Console.WriteLine("Delete bucket:{0} Tagging succeeded ", bucketName);
}
catch (OssException ex)
{
Console.WriteLine("Failed with error code: {0}; Error info: {1}. \nRequestID:{2}\tHostID:{3}",
ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId);
}
catch (Exception ex)
{
Console.WriteLine("Failed with error info: {0}", ex.Message);
}バケットからの特定のタグの削除
次のコードは、バケットから特定のタグを削除する方法を示しています。
using System;
using System.Collections.Generic;
using Aliyun.OSS;
using Aliyun.OSS.Common;
namespace Samples
{
public class Program
{
public static void Main(string[] args)
{
// endpoint を、バケットが配置されているリージョンのエンドポイントに設定します。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
var endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// 環境変数からアクセス認証情報を取得します。このコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// bucketName をバケットの名前に設定します (例: examplebucket)。
var bucketName = "examplebucket";
// region を、バケットが配置されているリージョンの ID に設定します。たとえば、バケットが中国 (杭州) リージョンにある場合、region を cn-hangzhou に設定します。
const string region = "cn-hangzhou";
// ClientConfiguration インスタンスを作成し、必要に応じてデフォルトのパラメーターを変更します。
var conf = new ClientConfiguration();
// 署名バージョン V4 を使用します。
conf.SignatureVersion = SignatureVersion.V4;
// OssClient インスタンスを作成します。
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
try
{
var tag = new Tag
{
Key = "key1",
Value = "value1"
};
var tags = new List<Tag>();
tags.Add(tag);
// タグキーを指定して、バケットから特定のタグを削除します。
var request = new DeleteBucketTaggingRequest(bucketName, tags);
client.DeleteBucketTagging(request);
Console.WriteLine("delete bucket:{0} Tagging by key succeeded ", bucketName);
}
catch (OssException ex)
{
Console.WriteLine("Failed with error code: {0}; Error info: {1}. \nRequestID:{2}\tHostID:{3}",
ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId);
}
}
}
}関連ドキュメント
バケットのタグを設定するために呼び出すことができる API 操作の詳細については、PutBucketTags をご参照ください。
バケットのタグを照会するために呼び出すことができる API 操作の詳細については、GetBucketTags をご参照ください。
バケットのタグを削除するために呼び出すことができる API 操作の詳細については、DeleteBucketTags をご参照ください。