全部产品
Search
文档中心

Object Storage Service:Buat bucket penyimpanan redundan zona

更新时间:Jan 08, 2026

Penyimpanan redundan zona OSS menyediakan ketahanan data hingga 99,9999999999% (12 sembilan). Di wilayah yang mendukung multi-zona, OSS menyimpan salinan data redundan di berbagai zona dalam wilayah yang sama. Distribusi data lintas zona ini memastikan ketersediaan akses data meskipun salah satu zona mengalami kegagalan, sekaligus menyediakan kemampuan pemulihan bencana tingkat pusat data.

Catatan

  • Untuk informasi lebih lanjut mengenai wilayah yang mendukung penyimpanan redundan zona, ketahanan data, dan ketersediaan layanan, lihat Storage redundancy.

  • Dibandingkan dengan locally redundant storage, penyimpanan redundan zona dikenai biaya penyimpanan yang lebih tinggi. Untuk informasi selengkapnya, lihat OSS Pricing.

  • Setelah Anda mengaktifkan penyimpanan redundan zona, Anda tidak dapat menonaktifkannya.

Prosedur

Gunakan Konsol OSS

  1. Masuk ke OSS console.

  2. Pada panel navigasi di sebelah kiri, klik Bucket List, lalu klik Create Bucket.

  3. Pada panel Create Bucket, atur Redundancy Type menjadi Zone-Redundant Storage (Recommended), lalu konfigurasikan parameter lainnya.

    Untuk informasi lebih lanjut mengenai parameter tersebut, lihat Create a bucket.

Gunakan Alibaba Cloud SDKs

Kode berikut memberikan contoh cara membuat bucket penyimpanan redundan zona menggunakan SDK umum. Untuk contoh kode SDK lainnya, lihat SDKs.

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 {
        // Setel yourEndpoint ke Endpoint wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel Endpoint ke https://oss-cn-hangzhou.aliyuncs.com.
        String endpoint = "yourEndpoint";
        // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // Tentukan nama bucket.
        String bucketName = "examplebucket";
        // Tentukan ID kelompok sumber daya. Jika tidak ditentukan, bucket akan ditambahkan ke kelompok sumber daya default.
        //String rsId = "rg-aek27tc****";
        // Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel Region ke cn-hangzhou.
        String region = "cn-hangzhou";
        
        // Buat instance OSSClient.
        // Setelah instance OSSClient tidak digunakan lagi, panggil metode shutdown untuk melepaskan sumber daya.
        ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
        clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);        
        OSS ossClient = OSSClientBuilder.create()
        .endpoint(endpoint)
        .credentialsProvider(credentialsProvider)
        .clientConfiguration(clientBuilderConfiguration)
        .region(region)               
        .build();

        try {
            // Buat bucket dan aktifkan fitur hierarchical namespace.
            CreateBucketRequest createBucketRequest = new CreateBucketRequest(bucketName).withHnsStatus(HnsStatus.Enabled);
            // Jika ingin menentukan kelas penyimpanan, ACL, dan tipe redundansi data saat membuat bucket, lihat kode berikut.
            // Kode berikut memberikan contoh cara mengatur kelas penyimpanan ke Standard.
            createBucketRequest.setStorageClass(StorageClass.Standard);
            // Tipe redundansi data default adalah LRS, yang ditentukan sebagai DataRedundancyType.LRS. Jika ingin mengatur tipe redundansi data ke ZRS, setel nilainya ke DataRedundancyType.ZRS.
            createBucketRequest.setDataRedundancyType(DataRedundancyType.ZRS);
            // Atur ACL bucket ke public-read. ACL default bersifat private.
            createBucketRequest.setCannedACL(CannedAccessControlList.PublicRead);
            // Saat membuat bucket di wilayah yang mendukung kelompok sumber daya, Anda dapat menetapkan bucket ke kelompok sumber daya tertentu.
            //createBucketRequest.setResourceGroupId(rsId);


            // Buat bucket.
            ossClient.createBucket(createBucketRequest);
        } catch (OSSException oe) {
            System.out.println("Terjadi OSSException, yang berarti permintaan Anda sampai ke OSS, "
                    + "tetapi ditolak dengan tanggapan error karena suatu alasan.");
            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("Terjadi ClientException, yang berarti klien mengalami "
                    + "masalah internal serius saat mencoba berkomunikasi dengan OSS, "
                    + "seperti tidak dapat mengakses jaringan.");
            System.out.println("Error Message:" + ce.getMessage());
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
    }
}
const OSS = require('ali-oss');

const client = new OSS({
  // Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel region ke oss-cn-hangzhou. 
  region: 'yourregion',
  // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. 
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // Tentukan nama bucket.
  bucket: 'yourBucketName',
});

// Buat bucket. 
async function putBucket() {
  try {
    const options = {
      storageClass: 'Standard', // Secara default, kelas penyimpanan bucket adalah Standard. Untuk mengatur kelas penyimpanan bucket ke Archive, setel storageClass ke Archive. 
      acl: 'private', // Secara default, daftar kontrol akses (ACL) bucket bersifat private. Untuk mengatur ACL bucket ke baca-publik, setel acl ke public-read. 
      dataRedundancyType: 'LRS' // Secara default, tipe redundansi bucket adalah locally redundant storage (LRS). Untuk mengatur tipe redundansi bucket ke zone-redundant storage (ZRS), setel dataRedundancyType ke ZRS. 
    }
    // Tentukan nama bucket. 
    const result = await client.putBucket('examplebucket', options);
    console.log(result);
  } catch (err) {
    console.log(err);
  }
}

putBucket();        
import argparse
import alibabacloud_oss_v2 as oss

# Buat parser argumen baris perintah.
parser = argparse.ArgumentParser(description="put bucket sample")
# Tambahkan argumen baris perintah --region, yang menentukan wilayah tempat bucket berada. Argumen ini wajib diisi.
parser.add_argument('--region', help='Wilayah tempat bucket berada.', required=True)
# Tambahkan argumen baris perintah --bucket, yang menentukan nama bucket. Argumen ini wajib diisi.
parser.add_argument('--bucket', help='Nama bucket.', required=True)
# Tambahkan argumen baris perintah --endpoint, yang menentukan nama domain yang dapat digunakan layanan lain untuk mengakses OSS. Argumen ini opsional.
parser.add_argument('--endpoint', help='Nama domain yang dapat digunakan layanan lain untuk mengakses OSS')

def main():
    args = parser.parse_args()  # Uraikan argumen baris perintah.

    # Muat kredensial dari variabel lingkungan untuk verifikasi identitas.
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()

    # Muat konfigurasi default SDK dan atur penyedia kredensial.
    cfg = oss.config.load_default()
    cfg.credentials_provider = credentials_provider
    # Atur wilayah dalam konfigurasi.
    cfg.region = args.region
    # Jika argumen endpoint disediakan, atur endpoint dalam konfigurasi.
    if args.endpoint is not None:
        cfg.endpoint = args.endpoint

    # Buat klien OSS menggunakan informasi yang telah dikonfigurasi.
    client = oss.Client(cfg)

    # Kirim permintaan untuk membuat bucket. Kelas penyimpanan adalah Standard.
    result = client.put_bucket(oss.PutBucketRequest(
        bucket=args.bucket,
        create_bucket_configuration=oss.CreateBucketConfiguration(
            storage_class='Standard',
           data_redundancy_type='ZRS'
        )
    ))
    # Cetak kode status dan ID permintaan untuk memeriksa apakah permintaan berhasil.
    print(f'status code: {result.status_code},'
          f' request id: {result.request_id}'
    )


if __name__ == "__main__":
    main()  # Titik masuk skrip. Fungsi main dipanggil saat file dijalankan secara langsung.
using Aliyun.OSS;
using Aliyun.OSS.Common;

// Setel yourEndpoint ke Endpoint wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel Endpoint ke https://oss-cn-hangzhou.aliyuncs.com.
var endpoint = "yourEndpoint";
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// Tentukan nama bucket.
var bucketName = "examplebucket";
// Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel region ke cn-hangzhou.
const string region = "cn-hangzhou";

// Buat instance ClientConfiguration dan ubah parameter default sesuai kebutuhan.
var conf = new ClientConfiguration();

// Gunakan Signature V4.
conf.SignatureVersion = SignatureVersion.V4;

// Buat instance OssClient.
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
client.SetRegion(region);
// Buat bucket.
try
    {
        var request = new CreateBucketRequest(bucketName);
        // Atur daftar kontrol akses (ACL) ke public-read. ACL default bersifat private.
        request.ACL = CannedAccessControlList.PublicRead;
        // Atur tipe pemulihan bencana data ke zone-redundant storage.
        request.DataRedundancyType = DataRedundancyType.ZRS;
        client.CreateBucket(request);
        Console.WriteLine("Create bucket succeeded");
    }
    catch (Exception ex)
    {
        Console.WriteLine("Create bucket failed. {0}", ex.Message);
    }
#include <alibabacloud/oss/OssClient.h>
using namespace AlibabaCloud::OSS;

int main(void)
{
    /* Inisialisasi informasi akun OSS. */
    
    /* Setel yourEndpoint ke Endpoint wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel Endpoint ke https://oss-cn-hangzhou.aliyuncs.com. */
    std::string Endpoint = "yourEndpoint";
    
    /* Setel yourRegion ke wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), setel Region ke cn-hangzhou. */
    std::string Region = "yourRegion";

    /* Tentukan nama bucket, misalnya examplebucket. */
    std::string BucketName = "examplebucket";

    /* Inisialisasi sumber daya jaringan. */
    InitializeSdk();

    ClientConfiguration conf;
    conf.signatureVersion = SignatureVersionType::V4;
    /* Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur. */
    auto credentialsProvider = std::make_shared<EnvironmentVariableCredentialsProvider>();
    OssClient client(Endpoint, credentialsProvider, conf);
    client.SetRegion(Region);

    /* Tentukan nama, kelas penyimpanan, dan ACL untuk bucket baru. */
    CreateBucketRequest request(BucketName, StorageClass::IA, CannedAccessControlList::PublicReadWrite);
    /* Atur tipe redundansi data ke zone-redundant storage. */
    request.setDataRedundancyType(DataRedundancyType::ZRS);

    /* Buat bucket. */
    auto outcome = client.CreateBucket(request);

    if (!outcome.isSuccess()) {
        /* Tangani pengecualian. */
        std::cout << "CreateBucket fail" <<
        ",code:" << outcome.error().Code() <<
        ",message:" << outcome.error().Message() <<
        ",requestId:" << outcome.error().RequestId() << std::endl;
        return -1;
    }

    /* Lepaskan sumber daya jaringan. */
    ShutdownSdk();
    return 0;
}
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"
)

// Definisikan argumen baris perintah.
var (
	region     string // Wilayah tempat bucket berada.
	bucketName string // Nama bucket.
)

// Inisialisasi penguraian argumen baris perintah.
func init() {
	flag.StringVar(&region, "region", "", "Wilayah tempat bucket berada.")
	flag.StringVar(&bucketName, "bucket", "", "Nama bucket.")
}

func main() {
	// Uraikan argumen baris perintah.
	flag.Parse()

	// Periksa apakah nama bucket kosong.
	if len(bucketName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("parameter tidak valid, nama bucket wajib diisi")
	}

	// Periksa apakah wilayah kosong.
	if len(region) == 0 {
		flag.PrintDefaults()
		log.Fatalf("parameter tidak valid, wilayah wajib diisi")
	}

	// Konfigurasikan klien OSS.
	cfg := oss.LoadDefaultConfig().
		WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()). // Gunakan variabel lingkungan untuk menyediakan kredensial akses.
		WithRegion(region)                                                                // Atur wilayah.

	// Buat instance klien OSS.
	client := oss.NewClient(cfg)

	// Bangun permintaan untuk membuat bucket.
	request := &oss.PutBucketRequest{
		Bucket: oss.Ptr(bucketName), // Atur nama bucket.
		CreateBucketConfiguration: &oss.CreateBucketConfiguration{
			DataRedundancyType: oss.DataRedundancyZRS, // Atur tipe redundansi data ke ZRS (Zone-Redundant Storage).
		},
	}

	// Kirim permintaan untuk membuat bucket.
	result, err := client.PutBucket(context.TODO(), request)
	if err != nil {
		log.Fatalf("gagal membuat bucket: %v", err) // Tangani error dan hentikan program.
	}

	// Cetak hasil pembuatan bucket.
	log.Printf("hasil pembuatan bucket: %#v\n", result)
}

Gunakan ossutil

Untuk informasi lebih lanjut mengenai cara membuat bucket penyimpanan redundan zona menggunakan ossutil, lihat put-bucket.

Gunakan REST API

Jika program Anda memiliki kebutuhan kustomisasi tinggi, Anda dapat mengirim permintaan REST API secara langsung. Untuk mengirim permintaan REST API, Anda harus menulis kode secara manual untuk menghitung signature. Untuk informasi selengkapnya, lihat PutBucket.