このトピックでは、現在のアカウントに属し、すべてのリージョンで指定された条件を満たすバケットを一覧表示する方法について説明します。
注意
このトピックのサンプルコードでは、中国 (杭州) リージョン ID
cn-hangzhouを例として使用します。 デフォルトでは、パブリックエンドポイントが使用されます。 同じリージョン内の他の Alibaba Cloud サービスから OSS にアクセスする場合は、内部エンドポイントを使用します。 OSS でサポートされているリージョンとエンドポイントの詳細については、「リージョンとエンドポイント」をご参照ください。バケットを一覧表示するには、
oss:ListBuckets権限が必要です。 詳細については、「RAM ユーザーへのカスタム権限の付与」をご参照ください。SDK を使用してバケットを一覧表示する場合、リソースグループ ID を指定して、そのリソースグループに属するバケットのみを一覧表示できます。
デフォルトでは、リソースグループ ID を指定しない場合、リクエストにこのパラメーターは含まれず、XML 応答にはリソースグループに関する情報は含まれません。
リソースグループ ID パラメーターがリクエストに含まれている場合、OSS は指定されたリソースグループに属するすべてのバケットを返します。
リソースグループ ID パラメーターがリクエストに含まれていない場合、OSS はリクエスターに属するすべてのバケットを返します。
現在のアカウントのすべてのリージョンにあるすべてのバケットを一覧表示する
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 に設定します。
// OSS SDK のデフォルト設定を読み込みます。 この設定では、環境変数から認証情報 (AccessKey など) を自動的に読み取ります。
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);
// ListBuckets 操作のページネーターを作成して、ページ分割された結果を処理します。
// ListBucketsRequest は SDK によって定義されたリクエストモデルです。 この例では、デフォルトのコンストラクターを使用してすべてのバケットを取得します。
var paginator = client.ListBucketsPaginator(new OSS.Models.ListBucketsRequest());
Console.WriteLine("Buckets:");
await foreach (var page in paginator.IterPageAsync())
{
// 現在のページの各バケットを走査します。
foreach (var bucket in page.Buckets ?? [])
{
// バケット情報 (名前、ストレージクラス、場所) を出力します。
Console.WriteLine($"Bucket:{bucket.Name}, {bucket.StorageClass}, {bucket.Location}");
}
}関連ドキュメント
バケットを一覧表示するための完全なサンプルコードについては、「list_buckets.cs」をご参照ください。