すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:バケットを作成する方法

最終更新日:Jul 15, 2025

バケットは、Object Storage Service (OSS) 内のオブジェクトのコンテナです。オブジェクトを OSS にアップロードする前に、まずオブジェクトを格納するバケットを作成する必要があります。アクセス制御リスト (ACL) やストレージクラスなど、バケットのさまざまな属性を構成できます。ビジネス要件に基づいて、さまざまなストレージクラスのバケットを作成し、データを格納できます。

注意事項

  • 2025年10月13日 10:00 (UTC + 08:00) から、OSS はすべてリージョンで段階的な調整を実施し、API、OSS SDK、または ossutil を使用して作成された新しいバケットに対して、デフォルトで Block Public Access を有効にします。各リージョンで調整が有効になる正確な時間については、「[公式発表] 新しく作成されたバケットのパブリックアクセスブロッキング設定の調整」をご覧ください。Block Public Access が有効になると、パブリック ACL(パブリック読み取りおよびパブリック読み取り/書き込み)やパブリックアクセスを許可するバケットポリシーなど、パブリックアクセス権限を構成できなくなります。ビジネスでパブリックアクセスが必要な場合は、バケットの作成後にこの機能を無効にすることができます。

  • デフォルトでは、Alibaba Cloud アカウントにはバケットを作成する権限があります。RAM ユーザーまたは Security Token Service (STS) を使用してバケットの帯域幅調整ルールを構成するには、oss:PutBucket 権限が必要です。詳細については、「RAM ユーザーにカスタムポリシーをアタッチする」をご参照ください。

  • バケットの作成には料金はかかりません。バケット内のオブジェクトのストレージと、オブジェクトへのアクセス時に発生するトラフィックに対してのみ課金されます。詳細については、「請求」をご参照ください。

  • バケットの容量はスケーラブルです。バケットを使用する前に容量を購入する必要はありません。

制限

  • Alibaba Cloud アカウントを使用して、同じリージョンに最大 100 個のバケットを作成できます。

  • バケットを作成した後、その名前、リージョン、またはストレージクラスを変更することはできません。

  • 単一のバケットの容量は無制限です。

方法

OSS コンソールを使用する

  1. OSS コンソール にログオンします。

  2. 左側のナビゲーションウィンドウで、バケット をクリックします。 [バケット] ページで、バケットの作成 をクリックします。

  3. バケットの作成 パネルで、次の表に示すパラメーターを構成します。

    パラメーター

    説明

    バケット名

    作成するバケットの名前。バケット名は以下の要件を満たしている必要があります。

    • 名前は OSS 全体で一意である必要があります。

    • 名前に使用できるのは、小文字、数字、ハイフン (-) のみです。

    • 名前は小文字または数字で始まり、小文字または数字で終わる必要があります。

    • 名前は 3 ~ 63 文字である必要があります。

    リージョン

    バケットが配置されているリージョン。

    内部ネットワーク経由で Elastic Compute Service (ECS) インスタンスから OSS にアクセスするには、ECS インスタンスが配置されているリージョンを選択します。 詳細については、「IPv6 をサポートするエンドポイントを使用して OSS にアクセスする」をご参照ください。

    説明

    中国本土のリージョンにバケットを作成する前に、実名登録 ページで実名登録を完了する必要があります。

    エンドポイント

    バケットが配置されているリージョンのパブリックエンドポイント。

    ストレージクラス

    バケットのストレージクラス。有効な値:

    • スタンダード: 頻繁にアクセスされるデータに対して、信頼性、可用性、およびパフォーマンスの高いストレージを提供します。 標準は、ソーシャルネットワーキング アプリケーション、画像、音声、ビデオ リソース共有アプリケーション、大規模 Web サイト、ビッグデータ分析など、さまざまなビジネス アプリケーションに適しています。

    • [IA]: 標準と比較して低価格で耐久性の高いストレージを提供します。 低頻度アクセス (IA) の最小請求サイズは 64 KB で、最小請求ストレージ期間は 30 日です。 IA オブジェクトにはリアルタイムでアクセスできます。 IA オブジェクトにアクセスすると、データ検索料金が発生します。 IA は、月に 1 ~ 2 回アクセスされるデータなど、アクセス頻度の低いデータに適しています。

    • アーカイブ: 標準および IA と比較して低価格で耐久性の高いストレージを提供します。 アーカイブの最小請求サイズは 64 KB で、最小請求ストレージ期間は 60 日です。 アーカイブ オブジェクトは、リストアされた後、またはアーカイブ オブジェクトのリアルタイム アクセスが有効になった後にアクセスできます。 アーカイブ オブジェクトのリストアに必要な時間は約 1 分です。 アーカイブ オブジェクトをリストアすると、データ検索料金が発生します。 アーカイブ オブジェクトのリアルタイム アクセスが有効になった後にアーカイブ オブジェクトにアクセスすると、アクセスされたアーカイブ オブジェクトのサイズに基づいてデータ検索料金が発生します。 アーカイブは、アーカイブ データ、医用画像、科学資料、ビデオ映像など、長期間保存する必要があるデータに適しています。

    • [コールドアーカイブ]: アーカイブと比較して低価格で耐久性の高いストレージを提供します。 コールドアーカイブの最小請求サイズは 64 KB で、最小請求ストレージ期間は 180 日です。 コールドアーカイブ オブジェクトにアクセスするには、オブジェクトをリストアする必要があります。 コールドアーカイブ オブジェクトのリストアに必要な時間は、オブジェクトのサイズとリストアの優先順位によって異なります。 コールドアーカイブ オブジェクトをリストアすると、データ検索料金と API 操作呼び出し料金が発生します。 コールドアーカイブは、コンプライアンス要件により長期間保持する必要があるデータ、ビッグデータおよび AI 分野で長期間にわたって蓄積された生データ、映画およびテレビ業界で保持されているメディア リソース、オンライン教育業界のアーカイブ ビデオなど、超長期間にわたってコールドデータを保存するのに適しています。

    • [ディープコールドアーカイブ]: コールドアーカイブと比較して低価格で耐久性の高いストレージを提供します。 ディープコールドアーカイブの最小請求サイズは 64 KB で、最小請求ストレージ期間は 180 日です。 ディープコールドアーカイブ オブジェクトにアクセスするには、オブジェクトをリストアする必要があります。 ディープコールドアーカイブ オブジェクトのリストアに必要な時間は、オブジェクトのサイズとリストアの優先順位によって異なります。 ディープコールドアーカイブ オブジェクトをリストアすると、データ検索料金と API 操作呼び出し料金が発生します。 ディープコールドアーカイブは、ビッグデータおよび AI 分野で長期間にわたって蓄積された生データ、長期間の保存が必要なメディアデータ、規制およびポリシー コンプライアンス要件により長期間保持する必要があるデータ、テープからクラウドにマイグレーションして長期間保存する必要があるデータなど、非常にコールドなデータを長期間保存するのに適しています。

    詳細については、「ストレージクラス」をご参照ください。

    冗長性

    バケットの冗長性タイプ。有効な値:

    • LRS

      ローカル冗長ストレージ (LRS) を使用すると、同じゾーン内の異なる設備の複数のデバイスにデータの複数のコピーを保存できます。 LRS は、ハードウェア障害が発生した場合でも、データの耐久性と可用性を提供します。

    • ZRS (推奨)

      ZRS は、同じリージョン内の複数のゾーンにデータの複数のコピーを保存します。 ゾーンが使用できなくなった場合でも、データにアクセスできます。

      重要

      ZRS はストレージ コストを増加させ、有効にした後は無効にすることができません。 ZRS を選択する際は注意が必要です。

      詳細については、「ゾーン冗長ストレージ バケットを作成する」をご参照ください。

    公開アクセス禁止

    バケットを作成すると、デフォルトでパブリックアクセスブロックが有効になります。 パブリックアクセスブロックが有効になると、パブリック ACL (パブリック読み取りおよびパブリック読み取り/書き込み) やパブリックアクセスを許可するバケットポリシーなど、パブリックアクセス権限を構成できなくなります。

    ACL

    バケットの ACL。有効な値:

    • 非公開: バケット所有者または承認されたユーザーのみが、バケット内のオブジェクトに対して読み取りおよび書き込み操作を実行できます。 他のユーザーは、バケット内のオブジェクトにアクセスできません。

    • 公開読み取り: バケット所有者または承認されたユーザーのみが、バケット内のオブジェクトに対して書き込み操作を実行できます。 匿名ユーザーを含む他のユーザーは、バケット内のオブジェクトを読み取ることのみができます。

      警告

      これにより、バケット内のデータへの予期しないアクセスや、予期せず高額な料金が発生する可能性があります。 バケット ACL をパブリック読み取りに設定する場合は注意が必要です。

    • 公開読み書き: 匿名ユーザーを含むすべてのユーザーが、バケット内のオブジェクトに対して読み取りおよび書き込み操作を実行できます。

      警告

      これにより、バケット内のデータへの予期しないアクセスや、予期せず高額な料金が発生する可能性があります。 ユーザーが禁止されているデータまたは情報をアップロードした場合、お客様の正当な利益および権利が侵害される可能性があります。 必要な場合を除き、バケット ACL をパブリック読み取り/書き込みに設定しないことをお勧めします。

    リソースグループ

    バケットが属するリソースグループ。 リソースグループは、使用状況、権限、およびリージョン別にリソースをグループ化するために使用されます。 リソースグループを使用して、リソースを階層的に編成し、ユーザーとプロジェクトに基づいてリソースをグループ化できます。 詳細については、「リソースグループとは」をご参照ください。

    バージョン管理

    バージョニングを有効にするかどうかを指定します。有効な値:

    • [有効]: バケットのバージョニングを有効にすると、バケット内で上書きまたは削除されたオブジェクトは以前のバージョンとして保存されます。 バージョニングを使用すると、バケット内のオブジェクトを以前のバージョンにリストアでき、データが誤って上書きまたは削除されるのを防ぐことができます。 詳細については、「バージョニング」をご参照ください。

    • [無効]: バケットのバージョニングを有効にしないと、バケット内で上書きまたは削除されたオブジェクトをリストアできません。

    暗号化の方法

    バケット内のオブジェクトの暗号化に使用される暗号化方式。

    • なし: サーバー側の暗号化は無効になっています。

    • [OSS 管理]: OSS によって管理されるキーを使用して、バケット内のオブジェクトが暗号化されます。 OSS は各オブジェクトを異なるキーで暗号化します。 OSS はまた、定期的にローテーションされるマスターキーを使用して暗号キーを暗号化します。

    • [KMS]: Key Management Service (KMS) に保存されているデフォルトのカスタマーマスターキー (CMK) または特定の CMK を使用して、データの暗号化と復号を行います。

      KMS 管理キーを使用するには、KMS をアクティブにする必要があります。 詳細については、「専用 KMS インスタンスを購入する」をご参照ください。

    • 暗号化アルゴリズム: AES-256 のみがサポートされています。

    • CMK: 暗号化の方法[KMS] に設定した場合、このパラメーターを構成できます。 次の CMK タイプのいずれかを選択できます。

      • alias/acs/oss: KMS に保存されているデフォルトの CMK を使用して、オブジェクトを暗号化し、オブジェクトのダウンロード時に復号します。

      • CMK ID: 特定の CMK によって生成されたキーを使用して異なるオブジェクトを暗号化し、指定された CMK ID が暗号化されたオブジェクトのメタデータに記録されます。 復号権限が付与されているユーザーがオブジェクトをダウンロードすると、オブジェクトは復号されます。 CMK ID を指定する前に、KMS コンソールでバケットと同じリージョンに通常のキーまたは外部キーを作成する必要があります。 詳細については、「CMK を作成する」をご参照ください。

    リアルタイムログ照会

    バケットのリアルタイムログクエリを有効にするかどうかを指定します。 過去 7 日間の OSS アクセスログを無料でリアルタイムでクエリする場合は、リアルタイムログクエリをオンにします。

    詳細については、「リアルタイムログクエリ」をご参照ください。

    ログをリアルタイムでクエリしない場合は、デフォルト設定の [無効] のままにします。

    定期バックアップ

    バケットのスケジュールバックアップを有効にするかどうかを指定します。 OSS データを定期的にバックアップする場合は、スケジュールバックアップをオンにします。 この場合、OSS は自動的にバックアッププランを作成し、Cloud Backup は 1 日 1 回データをバックアップし、バックアップを 7 日間保持します。 詳細については、「スケジュールバックアップ」をご参照ください。

    OSS データを定期的にバックアップしない場合は、デフォルト設定の [無効] のままにします。

    OSS-HDFS

    OSS-HDFS を有効にするかどうかを指定します。 JindoSDK を使用してデータレイクを構築するために OSS にアクセスする場合は、画面の指示に従って OSS-HDFS をオンにします。

    重要
    • OSS-HDFS は、有効にした後は無効にすることができません。 OSS-HDFS を有効にする場合は注意が必要です。

    • OSS-HDFS は、アーカイブまたはコールドアーカイブ バケットに対して有効にすることはできません。

    詳細については、「OSS-HDFS を有効にする」をご参照ください。

    階層型名前空間

    階層型名前空間を有効にするかどうかを指定します。 バケット内のディレクトリまたはオブジェクトの名前を変更する場合は、階層型名前空間を有効にします。

    重要
    • バケットの階層型名前空間は、バケットの作成時にのみ有効にすることができます。 階層型名前空間は、有効にした後は無効にすることができません。 階層型名前空間を有効にする場合は注意が必要です。

    • バケットの階層型名前空間を有効にすると、OSS の特定の機能がバケットで使用できなくなります。 詳細については、「階層型名前空間を使用する」をご参照ください。

  4. OK をクリックします。

OSS SDK の使用

次のサンプルコードは、一般的なプログラミング言語の OSS SDK を使用してバケットを作成する方法の例を示しています。その他のプログラミング言語の OSS SDK を使用してバケットを作成する方法の詳細については、「概要」をご参照ください。

import com.aliyun.oss.*;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.common.comm.SignVersion;
import com.aliyun.oss.model.*;

public class Demo {

    public static void main(String[] args) throws Exception {
        // バケットが配置されているリージョンのエンドポイントを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
        String endpoint = "yourEndpoint";
        // 環境変数からアクセス認証情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // バケットの名前を指定します。
        String bucketName = "examplebucket";
        // リソースグループの ID を指定します。リソースグループ ID を指定しない場合、バケットはデフォルトのリソースグループに属します。
        //String rsId = "rg-aek27tc****";
        // バケットが配置されているリージョンを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、リージョンを cn-hangzhou に設定します。
        String region = "cn-hangzhou";

        // OSSClient インスタンスを作成します。
        // OSSClient が使用されなくなったら、shutdown メソッドを呼び出して関連付けられているリソースを解放します。
        ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
        clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);        
        OSS ossClient = OSSClientBuilder.create()
        .endpoint(endpoint)
        .credentialsProvider(credentialsProvider)
        .clientConfiguration(clientBuilderConfiguration)
        .region(region)               
        .build();

        try {
            // バケットを作成し、バケットの階層型名前空間機能を有効にします。
            CreateBucketRequest createBucketRequest = new CreateBucketRequest(bucketName).withHnsStatus(HnsStatus.Enabled);
            // 次のコードは、バケットを作成するときにストレージクラス、アクセス制御リスト (ACL)、および冗長タイプを指定する方法の例を示しています。
            // この例では、バケットのストレージクラスは Standard です。
            createBucketRequest.setStorageClass(StorageClass.Standard);
            // バケットのデフォルトの冗長タイプは DataRedundancyType.LRS です。
            createBucketRequest.setDataRedundancyType(DataRedundancyType.LRS);
            // バケットの ACL を public-read に設定します。デフォルトの ACL は private です。
            createBucketRequest.setCannedACL(CannedAccessControlList.PublicRead);
            // リソースグループをサポートするリージョンでバケットを作成する場合、バケットにリソースグループを設定できます。
            //createBucketRequest.setResourceGroupId(rsId);

            ossClient.createBucket(createBucketRequest);

            // バケットを作成します。
            ossClient.createBucket(createBucketRequest);
        } catch (OSSException oe) {
            System.out.println("Caught an OSSException, which means your request made it to OSS, "
                    + "but was rejected with an error response for some reason.");
            System.out.println("Error Message:" + oe.getErrorMessage());
            System.out.println("Error Code:" + oe.getErrorCode());
            System.out.println("Request ID:" + oe.getRequestId());
            System.out.println("Host ID:" + oe.getHostId());
        } catch (ClientException ce) {
            System.out.println("Caught an ClientException, which means the client encountered "
                    + "a serious internal problem while trying to communicate with OSS, "
                    + "such as not being able to access the network.");
            System.out.println("Error Message:" + ce.getMessage());
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
    }
}
const OSS = require('ali-oss');

const client = new OSS({
  // バケットが配置されているリージョンを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、リージョンを oss-cn-hangzhou に設定します。
  region: 'yourregion',
  // 環境変数からアクセス認証情報を取得します。サンプルコードを実行する前に、環境変数 OSS_ACCESS_KEY_ID と OSS_ACCESS_KEY_SECRET を設定していることを確認してください。
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // バケットの名前を指定します。
  bucket: 'yourBucketName',
});

// バケットを作成します。
async function putBucket() {
  try {
    const options = {
      storageClass: 'Standard', // デフォルトでは、バケットのストレージクラスは Standard です。バケットのストレージクラスを Archive に設定するには、storageClass を Archive に設定します。
      acl: 'private', // デフォルトでは、バケットのアクセス制御リスト (ACL) は private です。バケットの ACL を public read に設定するには、acl を public-read に設定します。
      dataRedundancyType: 'LRS' // デフォルトでは、バケットの冗長タイプはローカル冗長ストレージ (LRS) です。バケットの冗長タイプをゾーン冗長ストレージ (ZRS) に設定するには、dataRedundancyType を ZRS に設定します。
    }
    // バケットの名前を指定します。
    const result = await client.putBucket('examplebucket', options);
    console.log(result);
  } catch (err) {
    console.log(err);
  }
}

putBucket();        
using Aliyun.OSS;
using Aliyun.OSS.Common;

// バケットが配置されているリージョンのエンドポイントを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、エンドポイントを 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");
// バケットの名前を指定します。
var bucketName = "examplebucket";
// バケットが配置されているリージョンを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、リージョンを cn-hangzhou に設定します。
const string region = "cn-hangzhou";

// ClientConfiguration インスタンスを作成し、要件に基づいてデフォルトパラメータを変更します。
var conf = new ClientConfiguration();

// 署名アルゴリズム V4 を使用します。
conf.SignatureVersion = SignatureVersion.V4;

// OSSClient インスタンスを作成します。
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
client.SetRegion(region);
// バケットを作成します。
try
    {
        var request = new CreateBucketRequest(bucketName);
        // バケットのアクセス制御リスト (ACL) を PublicRead に設定します。デフォルト値は private です。
        request.ACL = CannedAccessControlList.PublicRead;
        // バケットの冗長タイプをゾーン冗長ストレージ (ZRS) に設定します。
        request.DataRedundancyType = DataRedundancyType.ZRS;
        client.CreateBucket(request);
        Console.WriteLine("バケットの作成に成功しました");
    }
    catch (Exception ex)
    {
        Console.WriteLine("バケットの作成に失敗しました。{0}", ex.Message);
    }
// バケットを作成するためのリクエストを構築します。
// バケットの名前を指定します。
CreateBucketRequest createBucketRequest=new CreateBucketRequest("examplebucket");.
// バケットのアクセス制御リスト (ACL) を指定します。
// createBucketRequest.setBucketACL(CannedAccessControlList.Private);
// バケットのストレージクラスを指定します。
// createBucketRequest.setBucketStorageClass(StorageClass.Standard);

// バケットを非同期で作成します。
OSSAsyncTask createTask = oss.asyncCreateBucket(createBucketRequest, new OSSCompletedCallback<CreateBucketRequest, CreateBucketResult>() {
    @Override
    public void onSuccess(CreateBucketRequest request, CreateBucketResult result) {
        Log.d("asyncCreateBucket", "Success");
    }
    @Override
    public void onFailure(CreateBucketRequest request, ClientException clientException, ServiceException serviceException) {
        // リクエスト例外を処理します。
        if (clientException != null) {
            // クライアント例外 (ネットワーク例外など) を処理します。
            clientException.printStackTrace();
        }
        if (serviceException != null) {
            // サービス例外を処理します。
            Log.e("ErrorCode", serviceException.getErrorCode());
            Log.e("RequestId", serviceException.getRequestId());
            Log.e("HostId", serviceException.getHostId());
            Log.e("RawMessage", serviceException.getRawMessage());
        }
    }
});
// バケットを作成するためのリクエストを構築します。
OSSCreateBucketRequest * create = [OSSCreateBucketRequest new];
// バケット名を examplebucket に設定します。
create.bucketName = @"examplebucket";
// バケットのアクセス制御リスト (ACL) を private に設定します。
create.xOssACL = @"private";
// バケットのストレージクラスを低頻度アクセス (IA) に設定します。
create.storageClass = OSSBucketStorageClassIA;

OSSTask * createTask = [client createBucket:create];

[createTask continueWithBlock:^id(OSSTask *task) {
    if (!task.error) {
        NSLog(@"バケットの作成に成功しました!");
    } else {
        NSLog(@"バケットの作成に失敗しました。エラー: %@", task.error);
    }
    return nil;
}];
// タスクが完了するまで同期ブロッキングを実装します。
// [createTask waitUntilFinished];          
#include <alibabacloud/oss/OssClient.h>
using namespace AlibabaCloud::OSS;

int main(void)
{
    /* OSS へのアクセスに使用するアカウントに関する情報を初期化します。*/

    /* バケットが配置されているリージョンのエンドポイントを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。*/
    std::string Endpoint = "yourEndpoint";

    /* バケットが配置されているリージョンを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、リージョンを cn-hangzhou に設定します。*/
    std::string Region = "yourRegion";

    /* バケットの名前を指定します。例: examplebucket。*/
    std::string BucketName = "examplebucket";

    /* ネットワークリソースなどのリソースを初期化します。*/
    InitializeSdk();

    ClientConfiguration conf;
    conf.signatureVersion = SignatureVersionType::V4;
    /* 環境変数からアクセス認証情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。*/
    auto credentialsProvider = std::make_shared<EnvironmentVariableCredentialsProvider>();
    OssClient client(Endpoint, credentialsProvider, conf);
    client.SetRegion(Region);

    /* バケットの名前、ストレージクラス、およびアクセス制御リスト (ACL) を指定します。*/
    CreateBucketRequest request(BucketName, StorageClass::IA, CannedAccessControlList::PublicReadWrite);
    /* バケットの冗長タイプをゾーン冗長ストレージ (ZRS) に設定します。*/
    //request.setDataRedundancyType(DataRedundancyType::ZRS);

    /* バケットを作成します。*/
    auto outcome = client.CreateBucket(request);

    if (!outcome.isSuccess()) {
        /* 例外を処理します。*/
        std::cout << "CreateBucket fail" <<
        ",code:" << outcome.error().Code() <<
        ",message:" << outcome.error().Message() <<
        ",requestId:" << outcome.error().RequestId() << std::endl;
        return -1;
    }

    /* ネットワークリソースなどのリソースを解放します。*/
    ShutdownSdk();
    return 0;
}
#include "oss_api.h"
#include "aos_http_io.h"
/* バケットが配置されているリージョンのエンドポイントを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。*/
const char *endpoint = "yourEndpoint";
/* バケットの名前を指定します。例: examplebucket。*/
const char *bucket_name = "examplebucket";
/* バケットが配置されているリージョンを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、リージョンを cn-hangzhou に設定します。*/
const char *region = "yourRegion";

void init_options(oss_request_options_t *options)
{
    options->config = oss_config_create(options->pool);
    /* char* 文字列を使用して aos_string_t 型のデータを初期化します。*/
    aos_str_set(&options->config->endpoint, endpoint);
    /* 環境変数からアクセス認証情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。*/
    aos_str_set(&options->config->access_key_id, getenv("OSS_ACCESS_KEY_ID"));
    aos_str_set(&options->config->access_key_secret, getenv("OSS_ACCESS_KEY_SECRET"));
    // 2 つの追加パラメータを指定します。
    aos_str_set(&options->config->region, region);
    options->config->signature_version = 4;
    /* CNAME を使用して OSS にアクセスするかどうかを指定します。値 0 は、CNAME が使用されていないことを示します。*/
    options->config->is_cname = 0;
    /* タイムアウト期間などのネットワークパラメータを設定します。*/
    options->ctl = aos_http_controller_create(options->pool, 0);
}
int main(int argc, char *argv[])
{
    /* main() で aos_http_io_initialize メソッドを呼び出して、ネットワークリソースやメモリリソースなどのグローバルリソースを初期化します。*/
    if (aos_http_io_initialize(NULL, 0) != AOSE_OK) {
        exit(1);
    }
    /* メモリを管理するためのメモリプールを作成します。 aos_pool_t は apr_pool_t と同等です。メモリプールを作成するために使用されるコードは、APR ライブラリに含まれています。*/
    aos_pool_t *pool;
    /* メモリプールを作成します。2 番目のパラメータの値は NULL です。この値は、プールが他のメモリプールを継承しないことを指定します。*/
    aos_pool_create(&pool, NULL);
    /* オプションを作成して初期化します。このパラメータには、endpoint、access_key_id、access_key_secret、is_cname、curl などのグローバル設定情報が含まれます。*/
    oss_request_options_t *oss_client_options;
    /* メモリプールのメモリリソースをオプションに割り当てます。*/
    oss_client_options = oss_request_options_create(pool);
    /* oss_client_options を初期化します。*/
    init_options(oss_client_options);
    /* パラメータを初期化します。*/
    aos_string_t bucket;
    oss_acl_e oss_acl = OSS_ACL_PRIVATE;
    aos_table_t *resp_headers = NULL;
    aos_status_t *resp_status = NULL;
    /* char* データを aos_string_t 型のバケットに割り当てます。*/
    aos_str_set(&bucket, bucket_name);
    /* バケットを作成します。*/
    resp_status = oss_create_bucket(oss_client_options, &bucket, oss_acl, &resp_headers);
    /* バケットが作成されたかどうかを確認します。*/
    if (aos_status_is_ok(resp_status)) {
        printf("バケットの作成に成功しました\n");
    } else {
        printf("バケットの作成に失敗しました\n");
    }
    /* メモリプールを解放します。この操作により、リクエストに割り当てられたメモリリソースが解放されます。*/
    aos_pool_destroy(pool);
    /* 割り当てられたグローバルリソースを解放します。*/
    aos_http_io_deinitialize();
    return 0;
}
require 'aliyun/oss'
client = Aliyun::OSS::Client.new(
  # この例では、中国 (杭州) リージョンのエンドポイントが使用されています。実際のエンドポイントを指定してください。
  endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
  # 環境変数からアクセス認証情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
  access_key_id: ENV['OSS_ACCESS_KEY_ID'],
  access_key_secret: ENV['OSS_ACCESS_KEY_SECRET']
)
# バケットの名前を指定します。例: examplebucket。
client.create_bucket('examplebucket')
package main

import (
	"context"
	"flag"
	"log"

	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
)

// グローバル変数を指定します。
var (
	region     string // リージョン。
	bucketName string // バケットの名前。
)

// コマンドラインパラメータを初期化するために使用される init 関数を指定します。
func init() {
	flag.StringVar(&region, "region", "", "バケットが配置されているリージョン。")
	flag.StringVar(&bucketName, "bucket", "", "バケットの名前。")
}

func main() {
	// コマンドラインパラメータを解析します。
	flag.Parse()

	// バケット名が空かどうかを確認します。
	if len(bucketName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("無効なパラメータ、バケット名が必要です")
	}

	// リージョンが空かどうかを確認します。
	if len(region) == 0 {
		flag.PrintDefaults()
		log.Fatalf("無効なパラメータ、リージョンが必要です")
	}

	// デフォルトの設定を読み込み、認証情報プロバイダーとリージョンを指定します。
	cfg := oss.LoadDefaultConfig().
		WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
		WithRegion(region)

	// OSS クライアントを作成します。
	client := oss.NewClient(cfg)

	request := &oss.PutBucketRequest{
		Bucket: oss.Ptr(bucketName), // バケットの名前。
	}

	// バケットを作成するためのリクエストを送信します。
	result, err := client.PutBucket(context.TODO(), request)
	if err != nil {
		log.Fatalf("バケットの作成に失敗しました %v", err)
	}

	// バケット作成の結果を表示します。
	log.Printf("バケット作成結果:%#v\n", result)
}
import argparse
import alibabacloud_oss_v2 as oss

# コマンドライン引数パーサーを作成します。
parser = argparse.ArgumentParser(description="put bucket sample")
# バケットが配置されているリージョンを指定する必須のコマンドラインパラメータ --region を指定します。
parser.add_argument('--region', help='バケットが配置されているリージョン。', required=True)
# バケットの名前を指定する必須のコマンドラインパラメータ --bucket を指定します。
parser.add_argument('--bucket', help='バケットの名前。', required=True)
# 他のサービスが OSS にアクセスするために使用できるエンドポイントを指定するオプションのコマンドラインパラメータ --endpoint を指定します。
parser.add_argument('--endpoint', help='他のサービスが OSS にアクセスするために使用できるドメイン名')

def main():
    args = parser.parse_args()  # コマンドラインパラメータを解析します。

    # 認証のために環境変数からアクセス認証情報を読み込みます。
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()

    # SDK のデフォルト設定を読み込み、認証情報プロバイダーを指定します。
    cfg = oss.config.load_default()
    cfg.credentials_provider = credentials_provider
    # バケットが配置されているリージョンを指定します。
    cfg.region = args.region
    # endpoint パラメータが指定されている場合は、他のサービスが OSS にアクセスするために使用できるエンドポイントを指定します。
    if args.endpoint is not None:
        cfg.endpoint = args.endpoint

    # 設定を使用して OSSClient インスタンスを作成します。
    client = oss.Client(cfg)

    # バケットを作成し、そのストレージクラスを Standard に設定するリクエストを実行します。
    result = client.put_bucket(oss.PutBucketRequest(
        bucket=args.bucket,
        create_bucket_configuration=oss.CreateBucketConfiguration(
            storage_class='Standard'
        )
    ))
    # レスポンスの HTTP ステータスコードと、リクエストが成功したかどうかを確認するために使用されるリクエスト ID を出力します。
    print(f'status code: {result.status_code},'
          f' request id: {result.request_id},'
    )


if __name__ == "__main__":
    main()  # スクリプトのエントリポイント。ファイルが直接実行されると、main 関数が呼び出されます。
<?php

// オブジェクトと依存ライブラリを自動的にロードします。
require_once __DIR__ . '/../vendor/autoload.php';

use AlibabaCloud\Oss\V2 as Oss;

// コマンドラインパラメータを指定します。
$optsdesc = [
    "region" => ['help' => 'バケットが配置されているリージョン。', 'required' => True], // region パラメータは必須です。例: oss-cn-hangzhou。
    "endpoint" => ['help' => '他のサービスが OSS にアクセスするために使用できるドメイン名。', 'required' => False], // endpoint パラメータはオプションです。
    "bucket" => ['help' => 'バケットの名前', 'required' => True], // バケットの名前は必須です。
];

// コマンドラインパラメータを解析するための長いオプションのリストを生成します。
$longopts = \array_map(function ($key) {
    return "$key:"; // 各パラメータの後に続くコロン (:) は、パラメータが必須であることを示します。
}, array_keys($optsdesc));

// コマンドラインパラメータを解析します。
$options = getopt("", $longopts);

// 必須パラメータが設定されているかどうかを確認します。
foreach ($optsdesc as $key => $value) {
    if ($value['required'] === True && empty($options[$key])) {
        $help = $value['help'];
        echo "エラー: 次の引数は必須です: --$key, $help"; // 必須パラメータが設定されていないことを指定します。
        exit(1);
    }
}

// コマンドラインパラメータの値を取得します。
$region = $options["region"]; // バケットが配置されているリージョン。
$bucket = $options["bucket"]; // バケットの名前。

// 環境変数から認証情報 (AccessKeyId と AccessKeySecret) をロードします。
$credentialsProvider = new Oss\Credentials\EnvironmentVariableCredentialsProvider();

// SDK のデフォルト設定を使用します。
$cfg = Oss\Config::loadDefault();
$cfg->setCredentialsProvider($credentialsProvider); // 認証情報プロバイダーを指定します。
$cfg->setRegion($region); // リージョンを指定します。
if (isset($options["endpoint"])) {
    $cfg->setEndpoint($options["endpoint"]); // エンドポイントが指定されている場合は、エンドポイントを指定します。
}

// OSSClient インスタンスを作成します。
$client = new Oss\Client($cfg);

// バケット作成を開始するためのリクエストを作成します。
$request = new Oss\Models\PutBucketRequest($bucket);

// putBucket メソッドを呼び出します。
$result = $client->putBucket($request);

// 結果を出力します。
printf(
    'status code:' . $result->statusCode . PHP_EOL . // HTTP ステータスコード。
    'request id:' . $result->requestId // リクエストの一意の ID。
);

ossutil を使用する

ossutil を使用してバケットを作成できます。詳細については、「ossutil をインストールする」をご参照ください。

次の例は、examplebucket を作成する方法を示しています。

ossutil api put-bucket --bucket examplebucket

このコマンドの詳細については、「put-bucket」をご参照ください。

関連 API 操作

上記のメソッドは基本的に RESTful API に基づいて実装されており、高度なカスタマイズが必要なビジネスの場合は直接呼び出すことができます。 API を直接呼び出すには、コードに署名計算を含める必要があります。 詳細については、「PutBucket」をご参照ください。

次のステップ

  • オブジェクト管理

    • オブジェクトのアップロード

      バケットを作成した後、バケットにオブジェクトをアップロードできます。 オブジェクトをアップロードする方法の詳細については、「シンプルアップロード」をご参照ください。

    • オブジェクトのダウンロード

      オブジェクトをバケットにアップロードした後、オブジェクトをブラウザのデフォルトのダウンロードパスまたはカスタムのローカルパスにダウンロードできます。 オブジェクトをダウンロードする方法の詳細については、「シンプルダウンロード」をご参照ください。

    • オブジェクトの共有

      ダウンロードまたはプレビュー用のオブジェクト URL を使用して、他のユーザーとオブジェクトを共有できます。 詳細については、「オブジェクトの共有」をご参照ください。

  • アクセス制御

    セキュリティ上の理由から、OSS リソースのデフォルトの ACL は非公開です。 ACL が非公開のリソースには、所有者と承認されたユーザーのみがアクセスできます。 OSS では、さまざまなポリシーを設定して、ユーザーに OSS リソースへのアクセスまたは使用に関する特定の権限を付与できます。 詳細については、「アクセス制御」をご参照ください。