このトピックでは、C# SDK V2 を使用して指定されたバケットが存在するかどうかを判断する方法について説明します。
注意
このトピックのサンプルコードでは、中国 (杭州) リージョン ID の
cn-hangzhouを例として使用します。 デフォルトでは、パブリックエンドポイントが使用されます。 同じリージョン内の他の Alibaba Cloud サービスから OSS にアクセスする場合は、内部エンドポイントを使用します。 OSS リージョンとエンドポイントのマッピングの詳細については、「OSS リージョンとエンドポイント」をご参照ください。バケットが存在するかどうかを判断するには、
oss:GetBucketAcl権限が必要です。 詳細については、「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 検証用の認証情報を取得するように明示的に設定します (フォーマット: 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);
// IsBucketExistAsync メソッドを呼び出して、宛先バケットが存在するかどうかを判断します。
var result = await client.IsBucketExistAsync(bucket);
// 結果を出力します。
Console.WriteLine("IsBucketExist done"); // 操作が完了したことを示すプロンプトです。
Console.WriteLine($"result: {result}"); // バケットが存在するかどうかを出力します (存在する場合は True、存在しない場合は False)。 関連ドキュメント
完全なサンプルコードについては、「is_bucket_exist.cs」をご参照ください。