バケットはオブジェクトを格納するコンテナーです。このトピックでは、バケット情報を取得する方法について説明します。
注意事項
このトピックでは、中国 (杭州) リージョンのパブリックエンドポイントを例として使用します。 同じリージョン内の他の Alibaba Cloud プロダクトから Object Storage Service (OSS) にアクセスする場合は、内部エンドポイントを使用します。 OSS がサポートするリージョンとエンドポイントの詳細については、「リージョンとエンドポイント」をご参照ください。
このトピックでは、OSS ドメイン名を使用して OSSClient インスタンスを作成する例を示します。 カスタムドメイン名または Security Token Service (STS) を使用して OSSClient インスタンスを作成する場合は、「初期化 (C# SDK V1)」をご参照ください。
バケット情報を取得するには、
oss:GetBucketInfo権限が必要です。 詳細については、「RAM ユーザーへのカスタムアクセスポリシーの付与」をご参照ください。
サンプルコード
次のコードは、リージョン、作成日、権限などのバケット情報を取得します。
using Aliyun.OSS;
using Aliyun.OSS.Common;
// yourEndpoint を、バケットが配置されているリージョンのエンドポイントに設定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントを 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");
// yourbucketname をバケットの名前に設定します。
var bucketName = "yourbucketname";
// バケットが配置されているリージョンを設定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンを cn-hangzhou に設定します。
const string region = "cn-hangzhou";
// ClientConfiguration インスタンスを作成し、必要に応じてデフォルトパラメーターを変更します。
var conf = new ClientConfiguration();
// Signature V4 を使用します。
conf.SignatureVersion = SignatureVersion.V4;
// OssClient インスタンスを作成します。
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
client.SetRegion(region);
try
{
// バケット情報には、リージョン (Region または Location)、作成日 (CreationDate)、オーナー (Owner)、および権限 (Grants) が含まれます。
var bucketInfo = client.GetBucketInfo(bucketName);
Console.WriteLine("バケット {0} の情報取得に成功しました ", bucketName);
// バケットが配置されているリージョンを取得します。
Console.WriteLine("bucketInfo Location: {0}", bucketInfo.Bucket.Location);
// バケットの作成日を取得します。
Console.WriteLine("bucketInfo CreationDate: {0}", bucketInfo.Bucket.CreationDate);
// バケットのデータ冗長化タイプを取得します。
Console.WriteLine("bucketInfo DataRedundancyType: {0}", bucketInfo.Bucket.DataRedundancyType);
// バケットの権限を取得します。
Console.WriteLine("bucketInfo Grant: {0}", bucketInfo.Bucket.AccessControlList.Grant);
}
catch (OssException ex)
{
Console.WriteLine("エラーコード:{0}、エラー情報:{1} で失敗しました。\nRequestID:{2}\tHostID:{3}",
ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId);
}リファレンス
バケット情報を取得するために呼び出すことができる API 操作の詳細については、「GetBucketInfo」をご参照ください。