Object Storage Service (OSS) では、オブジェクトタグ付けを使用してバケット内のオブジェクトを分類できます。このトピックでは、C# SDK V2 を使用してオブジェクトタグを設定する方法について説明します。
重要
このトピックのサンプルコードでは、中国 (杭州) を例として使用しています。リージョン ID は
cn-hangzhouです。デフォルトでは、パブリックエンドポイントが使用されます。同じリージョン内の他の Alibaba Cloud サービスから OSS にアクセスする場合は、内部エンドポイントを使用します。詳細については、「OSS のリージョンとエンドポイント」をご参照ください。オブジェクトタグを設定するには、
oss:PutObjectTagging権限が必要です。詳細については、「RAM ユーザーへのカスタム権限の付与」をご参照ください。
サンプルコード
次のコードを使用して、オブジェクトにタグを設定できます。
using OSS = AlibabaCloud.OSS.V2; // Alibaba Cloud OSS SDK のエイリアスを作成して、後続の使用を簡素化します。
var region = "cn-hangzhou"; // 必須。バケットが配置されているリージョン。たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンを cn-hangzhou に設定します。
var endpoint = null as string; // オプション。OSS へのアクセスに使用されるエンドポイント。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
var bucket = "your bucket name"; // 必須。バケットの名前。
var key = "your object name"; // 必須。オブジェクトの名前。
// OSS SDK のデフォルト設定を読み込みます。設定は、環境変数から認証情報 (AccessKeys など) を自動的に読み取ります。
var cfg = OSS.Configuration.LoadDefault();
// 環境変数を使用して ID 検証用の認証情報を取得するように明示的に設定します (フォーマット: OSS_ACCESS_KEY_ID, OSS_ACCESS_KEY_SECRET)。
cfg.CredentialsProvider = new OSS.Credentials.EnvironmentVariableCredentialsProvider();
// 設定でバケットのリージョンを設定します。
cfg.Region = region;
// エンドポイントが指定されている場合、デフォルトのエンドポイントは上書きされます。
if(endpoint != null)
{
cfg.Endpoint = endpoint;
}
// 設定情報を使用して OSS クライアントインスタンスを作成します。
using var client = new OSS.Client(cfg);
// PutObjectTaggingAsync メソッドを呼び出して、宛先オブジェクトにタグを設定します。
var result = await client.PutObjectTaggingAsync(new()
{
Bucket = bucket,
Key = key,
Tagging = new()
{
TagSet = new()
{
Tags = [
new OSS.Models.Tag() { Key = "tag1", Value = "value1" }, // タグのキーと値のペア。
new OSS.Models.Tag() { Key = "tag2", Value = "value2" }, // タグのキーと値のペア。
]
}
}
});
// 結果を出力します。
Console.WriteLine("PutObjectTagging done"); // 操作が完了したことを示すメッセージ。
Console.WriteLine($"StatusCode: {result.StatusCode}"); // HTTP ステータスコード。
Console.WriteLine($"RequestId: {result.RequestId}"); // Alibaba Cloud でのトラブルシューティングに使用されるリクエスト ID。
Console.WriteLine("Response Headers:"); // 応答ヘッダー。
result.Headers.ToList().ForEach(x => Console.WriteLine(x.Key + " : " + x.Value)); // すべての応答ヘッダーを走査して出力します。関連ドキュメント
オブジェクトタグを設定するために使用される完全なサンプルコードについては、「PutObjectTagging.cs」をご参照ください。