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

Object Storage Service:Create a zone-redundant storage bucket

最終更新日:Apr 11, 2025

Object Storage Service (OSS) は、99.9999999999% (12 ナイン) のデータ耐久性を提供するゾーン冗長ストレージ (ZRS) をサポートしています。3 つ以上のアベイラビリティーゾーンを持つリージョンでは、マルチゾーン冗長ストレージメカニズムが実装されています。データの複数のコピーが同じリージョン内の複数のゾーンに保存されるため、1 つのゾーンが使用できなくなった場合でもアクセスが中断されることはありません。2 つのアベイラビリティーゾーンを持つリージョンでは、デュアルゾーン冗長ストレージメカニズムが実装されています。データのコピーは、同じリージョン内の 2 つのゾーンに冗長的に保存されるため、1 つのゾーンが使用できなくなった場合でもアクセスが中断されることはありません。このトピックでは、ZRS バケットを作成する方法について説明します。

注意事項

  • マルチゾーン冗長ストレージメカニズムは、中国 (杭州)、中国 (上海)、中国 (北京)、中国 (張家口)、中国 (ウランチャブ)、中国 (深セン)、中国 (香港)、日本 (東京)、シンガポール、インドネシア (ジャカルタ)、ドイツ (フランクフルト) リージョンの ZRS バケットに実装されています。

  • デュアルゾーン冗長ストレージメカニズムは、マレーシア (クアラルンプール) リージョンの ZRS バケットに実装されています。デュアルゾーン ZRS は、標準ストレージタイプでのみ使用できます。

  • ZRS の単価は、LRS よりも高くなっています。詳細については、OSS 価格ページをご覧ください。

  • ZRS は、有効にした後は無効にすることができません。

サポートされているストレージタイプ

ZRS は、標準、低頻度アクセス (IA)、およびアーカイブのストレージタイプをサポートしています。デュアルゾーン ZRS は、標準ストレージタイプでのみ使用できます。次の表に、ストレージタイプの違いを示します。

ストレージタイプ

リージョン

データ耐久性

サービスの可用性

最小請求サイズ

最小ストレージ期間

データ取得料金

データアクセス

画像処理

標準

中国 (杭州)、中国 (上海)、中国 (北京)、中国 (張家口)、中国 (ウランチャブ)、中国 (深セン)、中国 (香港)、日本 (東京)、シンガポール、インドネシア (ジャカルタ)、ドイツ (フランクフルト)

99.9999999999% (12 ナイン)

99.995%

該当なし

該当なし

該当なし

ミリ秒単位のレイテンシでリアルタイムアクセス

サポートされています

マレーシア (クアラルンプール)

99.99%

低頻度アクセス (IA)

中国 (杭州)、中国 (上海)、中国 (北京)、中国 (張家口)、中国 (ウランチャブ)、中国 (深セン)、中国 (香港)、日本 (東京)、シンガポール、インドネシア (ジャカルタ)、ドイツ (フランクフルト)

99.50%

64 KB

30 日

取得したデータのサイズ (GB) に基づく

ミリ秒単位のレイテンシでリアルタイムアクセス

アーカイブ

64 KB

60 日

解凍されたデータ、またはリアルタイムアクセス用に取得されたアーカイブデータのサイズ (GB) に基づく

アーカイブオブジェクトのリアルタイムアクセスが有効になっていない場合は、1 分間の解凍プロセスが必要。アーカイブオブジェクトのリアルタイムアクセスが有効になっている場合は、ミリ秒単位のレイテンシでリアルタイムアクセス

マレーシア (クアラルンプール) リージョンには 2 つのゾーンしかないため、その中の ZRS バケットにはデュアルゾーン冗長ストレージメカニズムが実装されています。デュアルゾーン ZRS は、標準ストレージタイプでのみ使用できます。

手順

OSS コンソールを使用する

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

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

  3. [バケットの作成] パネルで、[ZRS (推奨)]冗長性 に選択し、その他のパラメータを構成します。

    パラメータの詳細については、「バケットを作成する」をご参照ください。

OSS SDK を使用する

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

import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSS;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.OSSException;
import com.aliyun.oss.model.*;

public class Demo {

    public static void main(String[] args) throws Exception {
        // Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com. 
        String endpoint = "yourEndpoint";
        // Obtain access credentials from environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured. 
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // Specify the name of the bucket. 
        String bucketName = "examplebucket";
        // Specify the ID of the resource group. If you do not specify a resource group ID, the bucket belongs to the default resource group. 
        //String rsId = "rg-aek27tc****";
        // Specify the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the region to cn-hangzhou.
        String region = "cn-hangzhou";
        
        // Create an OSSClient instance. 
        ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
        clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);        
        OSS ossClient = OSSClientBuilder.create()
        .endpoint(endpoint)
        .credentialsProvider(credentialsProvider)
        .clientConfiguration(clientBuilderConfiguration)
        .region(region)               
        .build();

        try {
            // Create a bucket and enable the hierarchical namespace feature for the bucket. 
            CreateBucketRequest createBucketRequest = new CreateBucketRequest(bucketName).withHnsStatus(HnsStatus.Enabled);
            // The following code provides an example on how to specify the storage class, access control list (ACL), and redundancy type when you create the bucket. 
            // In this example, the storage class of the bucket is Standard. 
            createBucketRequest.setStorageClass(StorageClass.Standard);
            // The default redundancy type of the bucket is DataRedundancyType.LRS. 
            createBucketRequest.setDataRedundancyType(DataRedundancyType.LRS);
            // Set the ACL of the bucket to public-read. The default ACL is private. 
            createBucketRequest.setCannedACL(CannedAccessControlList.PublicRead);
            // When you create a bucket in a region that supports resource groups, you can configure a resource group for the bucket. 
            //createBucketRequest.setResourceGroupId(rsId);

            ossClient.createBucket(createBucketRequest);

            // Create a bucket. 
            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();
            }
        }
    }
}
<?php
if (is_file(__DIR__ . '/../autoload.php')) {
    require_once __DIR__ . '/../autoload.php';
}
if (is_file(__DIR__ . '/../vendor/autoload.php')) {
    require_once __DIR__ . '/../vendor/autoload.php';
}

use OSS\Credentials\EnvironmentVariableCredentialsProvider;
use OSS\OssClient;
use OSS\CoreOssException;

// 環境変数からアクセス認証情報を取得します。サンプルコードを実行する前に、環境変数 OSS_ACCESS_KEY_ID と OSS_ACCESS_KEY_SECRET が設定されていることを確認してください。
$provider = new EnvironmentVariableCredentialsProvider();
// この例では、中国 (杭州) リージョンのエンドポイントが使用されています。実際のエンドポイントを指定してください。
$endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
// バケットの名前を指定します。例: examplebucket。
$bucket= "examplebucket";
try {
    $config = array(
        "provider" => $provider,
        "endpoint" => $endpoint,
        "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
        "region"=> "cn-hangzhou"
    );
    $ossClient = new OssClient($config);
    // バケットのストレージタイプを低頻度アクセス (IA) に設定します。デフォルトのストレージタイプは標準です。
    $options = array(
        OssClient::OSS_STORAGE => OssClient::OSS_STORAGE_IA
    );
    // バケットの ACL をパブリック読み取りに設定します。デフォルトのバケット ACL はプライベートです。
    $ossClient->createBucket($bucket, OssClient::OSS_ACL_TYPE_PUBLIC_READ, $options);
} catch (OssException $e) {
    printf(__FUNCTION__ . ": FAILED\n");
    printf($e->getMessage() . "\n");
    return;
}
print(__FUNCTION__ . ": OK" . "\n");        
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', // デフォルトでは、バケットのストレージタイプは標準です。バケットのストレージタイプをアーカイブに設定するには、storageClass を Archive に設定します。
      acl: 'private', // デフォルトでは、バケットのアクセス制御リスト (ACL) はプライベートです。バケットの ACL をパブリック読み取りに設定するには、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();        
# -*- coding: utf-8 -*-
import oss2

# Alibaba Cloud アカウントの AccessKey ペアは、すべての API 操作に対する権限を持っています。これらの認証情報を使用して OSS で操作を実行することは、リスクの高い操作です。RAM ユーザーを使用して API 操作を呼び出したり、日常的な操作やメンテナンスを実行することをお勧めします。RAM ユーザーを作成するには、RAM コンソールにログインします。
auth = oss2.Auth('yourAccessKeyId', 'yourAccessKeySecret')
# バケットが配置されているリージョンのエンドポイントを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
# バケットの名前を指定します。例: examplebucket。
bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'examplebucket')

# バケットを作成します。
# 次のサンプルコードは、バケットを作成するときにストレージタイプ、アクセス制御リスト (ACL)、および冗長タイプを指定する方法の例を示しています。
# この例では、ストレージタイプは標準、ACL はプライベート、冗長タイプはゾーン冗長ストレージ (ZRS) です。
# bucketConfig = oss2.models.BucketCreateConfig(oss2.BUCKET_STORAGE_CLASS_STANDARD, oss2.BUCKET_DATA_REDUNDANCY_TYPE_ZRS)
# bucket.create_bucket(oss2.BUCKET_ACL_PRIVATE, bucketConfig)
bucket.create_bucket()
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("Create bucket succeeded");
    }
    catch (Exception ex)
    {
        Console.WriteLine("Create bucket failed. {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(@"create bucket success!");
    } else {
        NSLog(@"create bucket failed, error: %@", 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);
    /* オプションを作成して初期化します。このパラメータには、エンドポイント、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("create bucket succeeded\n");
    } else {
        printf("create bucket failed\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)                                                                // リージョンを指定します。

	// OSSclient インスタンスを作成します。
	client := oss.NewClient(cfg)

	// バケット作成のリクエストでパラメータを指定します。
	request := &oss.PutBucketRequest{
		Bucket: oss.Ptr(bucketName), // バケットの名前を指定します。
		CreateBucketConfiguration: &oss.CreateBucketConfiguration{
			DataRedundancyType: oss.DataRedundancyZRS, // データの冗長タイプを ZRS に設定します。
		},
	}

	// リクエストを送信します。
	result, err := client.PutBucket(context.TODO(), request)
	if err != nil {
		log.Fatalf("バケットの配置に失敗しました: %v", err) // エラーを処理してプログラムを終了します。
	}

	// 結果を表示します。
	log.Printf("バケットの配置結果: %#v\n", result)
}

ossutil を使用する

ossutil を使用して ZRS バケットを作成できます。詳細については、「mb (バケットを作成する)」をご参照ください。

OSS API を使用する

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