バケットはオブジェクトのコンテナーです。アップロードしたファイルは、オブジェクトとしてバケットに格納されます。このトピックでは、C# SDK V2 を使用してバケットを作成する方法について説明します。
権限
デフォルトでは、Alibaba Cloud アカウントは完全な権限を持っています。Alibaba Cloud アカウント下の RAM ユーザーまたは RAM ロールは、デフォルトではいかなる権限も持っていません。Alibaba Cloud アカウントまたはアカウント管理者は、RAM ポリシーまたはバケットポリシーを通じて操作権限を付与する必要があります。
API | アクション | 定義 |
PutBucket |
| バケットを作成します。 |
| バケットを作成した後、バケット ACL を変更するにはこの権限が必要です。 |
注意事項
このトピックのサンプルコードでは、中国 (杭州) リージョン (
cn-hangzhou) を例として使用しています。サンプルコードでは、デフォルトでパブリックエンドポイントを使用します。同じリージョン内の他の Alibaba Cloud サービスから OSS にアクセスする場合は、内部エンドポイントを使用してください。OSS がサポートするリージョンとエンドポイントの詳細については、「リージョンとエンドポイント」をご参照ください。2025年10月13日 10:00 (UTC + 08:00) から、OSS はすべてのリージョンで段階的な調整を実施し、API、OSS SDK、または ossutil を使用して作成された新しいバケットに対してデフォルトでパブリックアクセスのブロックを有効にします。各リージョンで調整が有効になる正確な時間については、[公式発表] 新規作成バケットのパブリックアクセスブロック設定の調整をご参照ください。パブリックアクセスのブロックが有効になると、パブリック ACL (パブリック読み取りおよびパブリック読み取り/書き込み) やパブリックアクセスを許可するバケットポリシーなど、パブリックアクセス権限を設定できなくなります。ビジネスでパブリックアクセスが必要な場合は、バケットの作成後にこの機能を無効にすることができます。
サンプルコード
次のコードを使用してバケットを作成できます。
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);
// PutBucketAsync メソッドを呼び出して新しいバケットを作成します。ストレージタイプは標準です。
var result = await client.PutBucketAsync(new OSS.Models.PutBucketRequest()
{
Bucket = bucket
});
// 作成結果を出力します。
Console.WriteLine("PutBucket done"); // 操作は完了です。
Console.WriteLine($"StatusCode: {result.StatusCode}"); // HTTP ステータスコード
Console.WriteLine($"RequestId: {result.RequestId}"); // RequestId。Alibaba Cloud が問題をトラブルシューティングするために使用します。
Console.WriteLine("Response Headers:"); // 応答ヘッダー情報
result.Headers.ToList().ForEach(x => Console.WriteLine(x.Key + " : " + x.Value)); // すべての応答ヘッダーを走査して出力します。関連ドキュメント
バケットを作成するための完全なサンプルコードについては、「PutBucket.cs」をご参照ください。