このトピックでは、OSS SDK for C# を使用して、指定されたバケットのアクセス追跡ステータス、リージョン、作成日、オーナー ID、ストレージタイプ、パブリックエンドポイント、内部の同一リージョンエンドポイント、クロスリージョンレプリケーションステータス、バージョン管理ステータスなどの情報を取得する方法について説明します。この情報を使用して、対応する操作を実行できます。
注意事項
このトピックのサンプルコードでは、中国 (杭州) リージョン (ID:
cn-hangzhou) を例として使用します。デフォルトではパブリックエンドポイントが使用されます。同一リージョン内の他の Alibaba Cloud サービスから OSS にアクセスする場合は、内部エンドポイントを使用します。OSS がサポートするリージョンとエンドポイントの詳細については、「OSS のリージョンとエンドポイント」をご参照ください。バケット情報を取得するには、
oss:GetBucketInfo権限が必要です。詳細については、「RAM ユーザーへのカスタム権限の付与」をご参照ください。
サンプルコード
次のサンプルコードを使用して、バケット情報を取得できます。
using OSS = AlibabaCloud.OSS.V2; // Alibaba Cloud OSS SDK のエイリアスを作成して、後続の使用を簡素化します。
var region = "cn-hangzhou"; // 必須。バケットが配置されているリージョンを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンを cn-hangzhou に設定します。
var bucket = "your bucket name"; // 必須。宛先バケットの名前を指定します。
var endpoint = null as string; // オプション。OSS へのアクセスに使用するエンドポイントを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
// OSS SDK のデフォルト設定を読み込みます。この設定は、環境変数から認証情報 (AccessKey ペアなど) を自動的に読み取ります。
var cfg = OSS.Configuration.LoadDefault();
// ID 検証のために環境変数から認証情報を取得するように SDK を明示的に設定します。フォーマットは 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);
// GetBucketInfoAsync メソッドを呼び出して、指定されたバケットの基本情報を取得します。
var result = await client.GetBucketInfoAsync(new OSS.Models.GetBucketInfoRequest()
{
Bucket = bucket
});
// 結果を出力します。
Console.WriteLine("GetBucketInfo 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)); // すべての応答ヘッダーを走査して出力します。
Console.WriteLine($"Location: {result.BucketInfo!.Location}"); // バケットのリージョンを出力します。
Console.WriteLine($"StorageClass: {result.BucketInfo!.StorageClass}"); // バケットのストレージタイプを出力します。
Console.WriteLine($"IntranetEndpoint: {result.BucketInfo!.IntranetEndpoint}"); // バケットの内部エンドポイントを出力します。
Console.WriteLine($"ExtranetEndpoint: {result.BucketInfo!.ExtranetEndpoint}"); // バケットのパブリックエンドポイントを出力します。一般的なバケット情報の一覧
パラメーター | 説明 |
BucketInfo.Name | バケットの名前。 |
BucketInfo.AccessMonitor | バケットのアクセス追跡ステータス。 |
BucketInfo.Location | バケットが配置されているリージョン。 |
BucketInfo.CreationDate | バケットの作成日。 |
BucketInfo.ExtranetEndpoint | バケットのパブリックエンドポイント。 |
BucketInfo.IntranetEndpoint | 同一リージョン内の ECS インスタンスからバケットにアクセスするために使用される内部エンドポイント。 |
BucketInfo.Owner | このパラメーターには、次のサブパラメーターが含まれます: BucketInfo.Owner.ID: バケットオーナーのユーザー ID。 |
BucketInfo.StorageClass | バケットのストレージタイプ。 |
BucketInfo.Versioning | バケットのバージョン管理ステータス。 |
BucketInfo.CrossRegionReplication | バケットのクロスリージョンレプリケーションステータス。 |
関連ドキュメント
バケットの詳細については、「バケット」をご参照ください。
バケット情報を取得するために使用される完全なサンプルコードについては、「GetBucketInfo.cs」をご参照ください。