All Products
Search
Document Center

Object Storage Service:Replikasi lintas wilayah dalam akun yang sama

Last Updated:Jul 08, 2026

Replikasi lintas wilayah dalam akun yang sama secara otomatis dan asinkron (mendekati waktu nyata) mereplikasi operasi objek—seperti pembuatan, pembaruan, dan penghapusan—dari bucket sumber di satu wilayah ke bucket tujuan di wilayah lain dalam akun yang sama. Topik ini menjelaskan cara mengonfigurasi replikasi lintas wilayah tersebut.

Prasyarat

  • Anda telah membuat bucket (Bucket A) di wilayah tertentu sebagai bucket sumber. Catat ID akun, nama Bucket A, dan wilayahnya.

  • Anda telah membuat bucket lain (Bucket B) di wilayah berbeda dalam akun yang sama sebagai bucket tujuan. Catat nama Bucket B dan wilayahnya.

Jenis peran

Saat mengonfigurasi replikasi lintas wilayah, Anda harus menentukan peran yang dapat diasumsikan oleh Object Storage Service (OSS) untuk mereplikasi objek antara bucket sumber dan bucket tujuan. Anda dapat menggunakan salah satu jenis peran berikut.

Penting

Pengguna RAM harus memiliki izin ram:CreateRole, ram:GetRole, ram:ListPoliciesForRole, dan ram:AttachPolicyToRole untuk membuat peran. Namun, memberikan izin terkait peran seperti ram:CreateRole dan ram:GetRole kepada pengguna RAM menimbulkan risiko keamanan. Untuk keamanan yang lebih baik, gunakan Akun Alibaba Cloud Anda untuk membuat peran RAM dan memberikan izin yang diperlukan. Pengguna RAM kemudian dapat langsung menggunakan peran tersebut.

(Direkomendasikan) Buat peran baru

Saat membuat aturan replikasi lintas wilayah, Anda dapat memilih untuk membuat peran baru. Peran akan dibuat secara otomatis dengan nama dalam format oss-replication-{uuid}. Kebijakan izin yang dilampirkan pada peran ini bergantung pada apakah Anda memilih untuk mereplikasi objek yang dienkripsi dengan Key Management Service (KMS).

  • Replikasi objek terenkripsi KMS

    Setelah peran dibuat, ikuti petunjuk di layar untuk memberikan izin. Setelah diotorisasi, peran memiliki kebijakan izin detail halus untuk mereplikasi dari bucket sumber ke bucket tujuan, serta kebijakan AliyunKMSCryptoUserAccess untuk mengelola Key Management Service (KMS).

  • Tidak mereplikasi objek terenkripsi KMS

    Setelah peran dibuat, ikuti petunjuk di layar untuk memberikan izin. Setelah diotorisasi, peran memiliki kebijakan izin detail halus untuk mereplikasi dari bucket sumber ke bucket tujuan.

AliyunOSSRole

Saat membuat aturan replikasi lintas wilayah, Anda dapat memilih AliyunOSSRole untuk menyelesaikan tugas replikasi. Jika memilih peran ini, kebijakan izin yang berbeda akan dilampirkan tergantung pada apakah Anda memilih untuk mereplikasi objek terenkripsi KMS.

  • Replikasi objek terenkripsi KMS

    Jika Anda memilih AliyunOSSRole, kebijakan AliyunOSSFullAccess (untuk mengelola Object Storage Service) dan AliyunKMSCryptoUserAccess (untuk mengelola Key Management Service) akan dilampirkan secara otomatis ke peran tersebut.

    Peringatan

    Peran ini memiliki akses penuh ke semua bucket dan kunci KMS dalam akun Anda. Karena izinnya sangat luas, gunakan peran ini dengan hati-hati.

  • Tidak mereplikasi objek terenkripsi KMS

    Jika Anda memilih AliyunOSSRole, kebijakan AliyunOSSFullAccess (untuk mengelola Object Storage Service) akan dilampirkan secara otomatis ke peran tersebut.

    Peringatan

    Peran ini memiliki akses penuh ke semua bucket dalam akun Anda. Karena izinnya sangat luas, gunakan peran ini dengan hati-hati.

Peran kustom

Saat membuat aturan replikasi lintas wilayah, Anda dapat menggunakan peran kustom untuk menyelesaikan tugas replikasi. Anda harus membuat peran kustom di Konsol RAM dan memberikan izin yang diperlukan kepada peran tersebut.

  1. Buat peran layanan reguler.

    Saat membuat peran, pilih Alibaba Cloud Service sebagai entitas tepercaya dan OSS sebagai layanan tepercaya. Untuk informasi selengkapnya, lihat Buat peran layanan reguler.

  2. Berikan izin kepada peran.

    Anda dapat memberikan izin kepada peran dengan salah satu cara berikut.

    Lampirkan kebijakan sistem

    Peringatan

    Anda dapat melampirkan kebijakan sistem AliyunOSSFullAccess ke peran RAM. Secara default, AliyunOSSFullAccess memberikan izin penuh atas semua bucket dalam akun saat ini. Gunakan kebijakan ini dengan hati-hati.

    Jika Anda ingin mereplikasi objek terenkripsi KMS ke bucket tujuan, Anda juga harus melampirkan kebijakan sistem AliyunKMSFullAccess ke peran tersebut.

    Untuk informasi selengkapnya, lihat Kelola izin untuk peran RAM.

    Lampirkan kebijakan kustom

    Gunakan kebijakan RAM untuk memberikan izin minimum yang diperlukan untuk replikasi dari bucket sumber (src-bucket) ke bucket tujuan (dest-bucket).

    Catatan

    Ganti nama bucket sumber dan tujuan dengan nama bucket aktual Anda.

    {
       "Version":"1",
       "Statement":[
          {
             "Effect":"Allow",
             "Action":[
                "oss:ReplicateList",
                "oss:ReplicateGet"
             ],
             "Resource":[
                "acs:oss:*:*:src-bucket",
                "acs:oss:*:*:src-bucket/*"
             ]
          },
          {
             "Effect":"Allow",
             "Action":[
                "oss:ReplicateList",
                "oss:ReplicateGet",
                "oss:ReplicatePut",
                "oss:ReplicateDelete"
             ],
             "Resource":[
                "acs:oss:*:*:dest-bucket",
                "acs:oss:*:*:dest-bucket/*"
             ]
          }
       ]
    }

    Untuk informasi selengkapnya, lihat Kelola izin untuk peran RAM.

    Catatan

    Jika Anda ingin mereplikasi objek terenkripsi KMS ke bucket tujuan, Anda juga harus melampirkan kebijakan sistem AliyunKMSFullAccess ke peran tersebut.

Penting

Saat mereplikasi data lintas wilayah dalam akun yang sama, OSS hanya memvalidasi kebijakan izin peran RAM yang digunakan untuk replikasi. OSS tidak memeriksa kebijakan bucket dari bucket sumber atau tujuan.

Prosedur

Konsol OSS

  1. Masuk ke Konsol OSS.

  2. Di panel navigasi kiri, klik Buckets. Lalu, klik nama bucket sumber.

  3. Di panel navigasi kiri, pilih Data Management > CRR.

  4. Di tab CRR, klik CRR.

  5. Di panel CRR, konfigurasikan parameter sesuai tabel berikut.

    Bagian

    Parameter

    Deskripsi

    Configure Destination Bucket

    Source Bucket

    Wilayah dan nama bucket sumber.

    Destination Bucket

    Pilih Select a bucket that belongs to the Alibaba Cloud account. Lalu, dari daftar drop-down, pilih wilayah dan nama bucket tujuan.

    Objects to Replicate

    Pilih objek sumber yang akan direplikasi.

    • Synchronize all files: Replikasi semua objek dari bucket sumber ke bucket tujuan.

    • Objects with Specified Prefix: Replikasi objek dengan awalan tertentu ke bucket tujuan. Anda dapat menambahkan hingga 10 awalan. Untuk meningkatkan batas ini, hubungi Dukungan Teknis untuk menaikkan batas maksimum menjadi 100.

    Object Tagging

    Catatan

    Untuk mengonfigurasi parameter ini, Anda harus memenuhi kondisi berikut:

    • Anda telah mengonfigurasi tag objek.

    • Kotak centang Replicate Deletion Markers dan Replicate Deletions of Specific Object Versions tidak dicentang.

    Pilih kotak centang Configure Rules untuk mereplikasi objek yang memiliki tag tertentu ke bucket tujuan. Anda dapat menambahkan hingga 10 tag (pasangan kunci-nilai). Setelah menambahkan tag, pilih salah satu kebijakan penyaringan berikut:

    • Include all tags: Replikasi objek hanya jika semua tag-nya termasuk dalam kumpulan tag yang ditentukan dalam aturan filter.

    • Include any one tag: Replikasi objek jika setidaknya satu tag-nya termasuk dalam kumpulan tag yang ditentukan dalam aturan filter.

    Replicate KMS-Encrypted Source Objects

    Pilih apakah akan mereplikasi objek terenkripsi KMS ke bucket tujuan.

    • Yes: Pilih opsi ini untuk mereplikasi objek ke bucket tujuan jika objek sumber atau bucket tujuan dienkripsi menggunakan kunci yang dikelola KMS (SSE-KMS dengan ID CMK tertentu).

      Catatan

      Anda dapat memanggil operasi HeadObject dan GetBucketEncryption untuk menanyakan status enkripsi objek sumber dan bucket tujuan, masing-masing.

    • No: Jangan mereplikasi objek terenkripsi KMS ke bucket tujuan.

    CMK ID

    Tentukan kunci KMS untuk mengenkripsi objek tujuan.

    Anda harus terlebih dahulu membuat kunci KMS di Konsol KMS di wilayah yang sama dengan bucket tujuan. Untuk informasi selengkapnya, lihat Buat kunci.

    RAM Role

    Kami menyarankan Anda memilih New RAM Role. Dari daftar drop-down, pilih opsi ini dan ikuti petunjuk di layar untuk memberikan izin.

    Anda juga dapat memilih AliyunOSSRole atau peran kustom. Untuk informasi selengkapnya tentang jenis peran ini, lihat Jenis peran.

    Configure Replication Policy

    Replicate Historical Data

    Pilih apakah akan mereplikasi objek yang sudah ada di bucket sumber sebelum aturan replikasi lintas wilayah diterapkan.

    • Yes: Replikasi data historis yang sudah ada ke bucket tujuan.

      Penting

      Saat mereplikasi data historis, objek dari bucket sumber mungkin menimpa objek dengan nama yang sama di bucket tujuan. Untuk mencegah kehilangan data, kami menyarankan Anda mengaktifkan versioning untuk kedua bucket sumber dan tujuan.

    • No: Replikasi hanya objek yang diunggah atau diperbarui setelah aturan replikasi lintas wilayah diterapkan.

    Copy Delete Operation

    Pilih apakah akan mereplikasi operasi hapus dari bucket sumber ke bucket tujuan.

    Catatan

    Opsi ini muncul jika versioning tidak diaktifkan pada bucket sumber. Jika versioning diaktifkan pada bucket sumber, opsi ini digantikan oleh dua pengaturan terpisah: Copy Delete Marker dan Copy Delete Operation of Specified Version.

    • Ya (untuk skenario yang memerlukan berbagi dan mengakses dataset yang sama): Replikasi operasi pembuatan, pembaruan, dan penghapusan objek di bucket sumber ke bucket tujuan.

      Penting

      Dengan kebijakan ini, semua operasi pembuatan, pembaruan, dan penghapusan direplikasi. Saat Anda menghapus objek dari bucket sumber, baik secara manual maupun melalui aturan lifecycle, objek yang sesuai di bucket tujuan juga dihapus dan tidak dapat dipulihkan.

    • Tidak (untuk skenario pemulihan bencana): Replikasi hanya operasi pembuatan dan pembaruan objek di bucket sumber. Operasi penghapusan tidak memengaruhi bucket tujuan.

      Catatan

      Hal ini mencegah kehilangan data secara tidak sengaja di bucket tujuan akibat penghapusan manual atau penghapusan otomatis melalui aturan lifecycle di bucket sumber.

    Copy Delete Marker

    Pilih apakah akan mereplikasi penanda hapus dari bucket sumber ke bucket tujuan.

    • Replikasi: Saat objek dihapus dari bucket sumber tanpa menentukan ID versi, OSS membuat penanda hapus di bucket sumber, yang kemudian direplikasi ke bucket tujuan. Ini cocok untuk skenario di mana Anda berbagi dan mengakses dataset yang sama serta perlu memastikan bahwa bucket sumber dan tujuan berada dalam keadaan konsisten.

      Penting

      Dengan kebijakan ini, saat Anda menghapus objek dari bucket sumber, baik secara manual maupun melalui aturan lifecycle, penanda hapus direplikasi ke bucket tujuan, sehingga data tersebut juga tidak dapat diakses di sana.

    • Jangan replikasi (untuk skenario pemulihan bencana): Penanda hapus yang dibuat di bucket sumber tidak direplikasi ke bucket tujuan. Hal ini secara efektif mencegah kehilangan data di bucket tujuan akibat penghapusan tidak disengaja atau penghapusan otomatis melalui aturan lifecycle di bucket sumber.

    Copy Delete Operation of Specified Version

    Pilih apakah akan mereplikasi penghapusan permanen versi objek tertentu dari bucket sumber ke bucket tujuan.

    Catatan

    Setelah Anda membuat aturan replikasi data, perubahan kelas penyimpanan objek di bucket sumber yang disebabkan oleh aturan lifecycle atau operasi CopyObject tidak disinkronkan ke bucket tujuan. Selain itu, atribut waktu akses terakhir (x-oss-last-access-time) objek di bucket sumber tidak disinkronkan.

    • Replikasi: Saat versi tertentu dari objek sumber, termasuk versi saat ini dan versi non-saat ini, dihapus secara permanen, versi yang sesuai di bucket tujuan juga dihapus secara permanen. Ini cocok untuk skenario yang memerlukan data sumber dan tujuan benar-benar identik.

      Penting

      Dengan kebijakan ini, versi objek yang dihapus secara permanen dari bucket sumber tidak dapat dipulihkan dari bucket tujuan. Pilih opsi ini dengan hati-hati.

    • Jangan replikasi (untuk skenario pemulihan bencana): Saat versi tertentu dari objek sumber dihapus secara permanen, versi yang sesuai di bucket tujuan tidak dihapus. Hal ini melindungi data di bucket tujuan dari operasi penghapusan permanen di bucket sumber.

    Jika Objek diunggah ke Bucket sumber menggunakan unggah multi-bagian, operasi unggah untuk setiap bagian direplikasi ke Bucket tujuan. Terakhir, Objek yang dibuat setelah operasi CompleteMultipartUpload pada semua bagian juga direplikasi ke Bucket tujuan.

    Untuk informasi selengkapnya tentang perilaku replikasi saat menggunakan versioning, lihat Replikasi dengan versioning.

    Configure Replication Speed

    Acceleration Type

    Hanya Transfer Acceleration yang didukung. Akselerasi transfer meningkatkan kecepatan replikasi lintas wilayah antara wilayah di dalam dan luar Tiongkok daratan. Jika Anda mengaktifkan akselerasi transfer, Anda akan dikenai biaya tambahan. Untuk informasi selengkapnya tentang penagihan, lihat Biaya akselerasi transfer.

    RTC

    Catatan

    Anda dapat mengaktifkan RTC untuk tugas CRR hanya antara wilayah berikut di Tiongkok daratan: Tiongkok (Hangzhou), Tiongkok (Shanghai), Tiongkok (Qingdao), Tiongkok (Beijing), Tiongkok (Zhangjiakou), dan Tiongkok (Shenzhen).

    Anda dapat mengaktifkan RTC untuk tugas CRR hanya antara wilayah AS (Silicon Valley) dan AS (Virginia).

    Untuk tugas yang tidak melibatkan replikasi data historis, RTC berlaku dalam waktu 15 menit setelah diaktifkan. Untuk tugas yang melibatkan replikasi data historis, RTC berlaku sekitar satu jam setelah replikasi data historis selesai. Setelah berlaku, RTC memastikan bahwa 99,99% objek yang baru ditulis direplikasi dalam waktu 10 menit. Mengaktifkan RTC akan menimbulkan biaya RTC.

  6. Klik OK, lalu di kotak dialog yang muncul, klik Enable.

    • Setelah aturan replikasi lintas wilayah dibuat, Anda tidak dapat mengedit atau menghapusnya.

    • Tugas replikasi dimulai 3 hingga 5 menit setelah aturan replikasi lintas wilayah dikonfigurasi. Anda dapat melihat progres replikasi di tab CRR bucket sumber.

    • Karena replikasi lintas wilayah bersifat asinkron, waktu yang diperlukan untuk mereplikasi data ke bucket tujuan bergantung pada ukuran data, biasanya berkisar dari beberapa menit hingga beberapa jam.

Alibaba Cloud SDK

Hanya SDK Java, Python, dan Go yang mendukung replikasi lintas wilayah dalam akun yang sama.

Java

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

public class Demo {

    public static void main(String[] args) throws Exception {
        // Endpoint wilayah Tiongkok (Hangzhou) digunakan dalam contoh ini. Ganti dengan endpoint aktual wilayah Anda.
        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
        // Tentukan wilayah yang sesuai dengan endpoint, misalnya cn-hangzhou.
        String region = "cn-hangzhou";
        // Kami sangat menyarankan agar Anda tidak menyematkan kredensial akses secara langsung dalam kode Anda. Hal ini dapat menyebabkan kebocoran kredensial dan membahayakan keamanan semua resource dalam akun Anda. Contoh ini menggunakan variabel lingkungan untuk mendapatkan kredensial akses. Sebelum menjalankan kode ini, konfigurasikan variabel lingkungan tersebut.
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // Tentukan nama bucket sumber.
        String bucketName = "src-bucket";
        // Tentukan bucket tujuan tempat Anda ingin mereplikasi data. Bucket tujuan dan sumber harus dimiliki oleh akun yang sama.
        String targetBucketName = "dest-bucket";
        // Tentukan wilayah tempat bucket tujuan berada. Bucket tujuan dan sumber harus berada di wilayah yang berbeda.
        String targetBucketLocation = "oss-cn-shanghai";

        // Buat instance OSSClient.
        // Panggil metode shutdown untuk melepaskan resource saat instance OSSClient tidak lagi digunakan.
        ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
        // Nyatakan secara eksplisit penggunaan algoritma signature V4.
        clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
        OSS ossClient = OSSClientBuilder.create()
                .endpoint(endpoint)
                .credentialsProvider(credentialsProvider)
                .clientConfiguration(clientBuilderConfiguration)
                .region(region)
                .build();

        try {
            AddBucketReplicationRequest request = new AddBucketReplicationRequest(bucketName);
            request.setTargetBucketName(targetBucketName);
            request.setTargetBucketLocation(targetBucketLocation);
            // Secara default, data historis direplikasi. Tetapkan nilai ini ke false untuk menonaktifkan replikasi data historis.
            request.setEnableHistoricalObjectReplication(false);
            // Tentukan nama peran yang mengizinkan OSS melakukan replikasi data. Peran ini harus telah diberikan izin untuk melakukan replikasi lintas wilayah pada bucket sumber dan menerima objek yang direplikasi di bucket tujuan.
            request.setSyncRole("yourRole");
            // Tentukan apakah OSS mereplikasi objek yang dibuat dengan enkripsi SSE-KMS.
            //request.setSseKmsEncryptedObjectsStatus("Enabled");
            // Tentukan ID kunci SSE-KMS. Elemen ini wajib jika Status diatur ke Enabled.
            //request.setReplicaKmsKeyID("3542abdd-5821-4fb5-a425-90adca***");
            //List prefixes = new ArrayList();
            //prefixes.add("image/");
            //prefixes.add("video");
            //prefixes.add("a");
            //prefixes.add("A");
            // Tentukan awalan objek yang akan direplikasi. Jika Anda menentukan awalan, hanya objek dengan awalan tersebut yang direplikasi ke bucket tujuan.
            //request.setObjectPrefixList(prefixes);
            //List actions = new ArrayList();
            //actions.add(AddBucketReplicationRequest.ReplicationAction.PUT);
            // Replikasi operasi pembuatan dan pembaruan objek di bucket sumber ke bucket tujuan.
            //request.setReplicationActionList(actions);
            ossClient.addBucketReplication(request);
        } catch (OSSException oe) {
            System.out.println("Terjadi OSSException, yang berarti permintaan Anda berhasil mencapai OSS, "
                    + "tetapi ditolak dengan tanggapan error karena suatu alasan.");
            System.out.println("Pesan Error:" + oe.getErrorMessage());
            System.out.println("Kode Error:" + oe.getErrorCode());
            System.out.println("ID Permintaan:" + oe.getRequestId());
            System.out.println("ID Host:" + 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("Pesan Error:" + ce.getMessage());
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
    }
}        

Python

# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
from oss2.models import ReplicationRule
# 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.
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# Tentukan endpoint wilayah tempat bucket sumber berada. Misalnya, untuk wilayah Tiongkok (Hangzhou), atur endpoint ke https://oss-cn-hangzhou.aliyuncs.com.
# Tentukan nama bucket sumber, misalnya src-bucket.
bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'src-bucket')
replica_config = ReplicationRule(
    # Tentukan bucket tujuan tempat Anda ingin mereplikasi data. Bucket tujuan dan sumber harus dimiliki oleh akun yang sama.
    target_bucket_name='dest-bucket',
    # Tentukan wilayah tempat bucket tujuan berada. Bucket tujuan dan sumber harus berada di wilayah yang berbeda.
    target_bucket_location='oss-cn-shanghai',
    # Tentukan nama peran yang mengizinkan OSS melakukan replikasi data. Peran ini harus telah diberikan izin untuk melakukan replikasi lintas wilayah pada bucket sumber dan menerima objek yang direplikasi di bucket tujuan.
    sync_role_name='roleNameTest',
)

# Tentukan awalan objek yang akan direplikasi. Jika Anda menentukan awalan, hanya objek dengan awalan tersebut yang direplikasi ke bucket tujuan.
# prefix_list = ['prefix1', 'prefix2']
# Konfigurasikan aturan replikasi data.
# replica_config = ReplicationRule(
     # prefix_list=prefix_list,
     # Replikasi operasi pembuatan dan pembaruan objek di bucket sumber ke bucket tujuan.
     # action_list=[ReplicationRule.PUT],
     # Tentukan bucket tujuan tempat Anda ingin mereplikasi data. Bucket tujuan dan sumber harus dimiliki oleh akun yang sama.
     # target_bucket_name='dest-bucket',
     # Tentukan wilayah tempat bucket tujuan berada. Bucket tujuan dan sumber harus berada di wilayah yang berbeda.
     # target_bucket_location='yourTargetBucketLocation',
     # Secara default, data historis direplikasi. Tetapkan nilai ini ke `False` untuk menonaktifkan replikasi data historis.
     # is_enable_historical_object_replication=False,
     # Tentukan tautan transfer data yang digunakan untuk replikasi data.
     # target_transfer_type='oss_acc',    
  #)

# Aktifkan replikasi data.
bucket.put_bucket_replication(replica_config)

Go

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 variabel global.
var (
	region     string // Wilayah tempat bucket berada.
	bucketName string // Nama bucket.
)

// Tentukan fungsi init yang digunakan untuk menginisialisasi parameter baris perintah.
func init() {
	flag.StringVar(&region, "region", "", "Wilayah tempat bucket berada.")
	flag.StringVar(&bucketName, "bucket", "", "Nama bucket.")
}

func main() {
	// Parsing parameter baris perintah.
	flag.Parse()

	var (
		targetBucket   = "target bucket name" // Nama bucket tujuan.
		targetLocation = "oss-cn-beijing"     // Wilayah tempat bucket tujuan berada.
	)

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

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

	// Muat konfigurasi default dan tentukan penyedia kredensial serta wilayah.
	cfg := oss.LoadDefaultConfig().
		WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
		WithRegion(region)

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

	// Buat permintaan untuk mengaktifkan replikasi data untuk bucket.
	request := &oss.PutBucketReplicationRequest{
		Bucket: oss.Ptr(bucketName), // Nama bucket.
		ReplicationConfiguration: &oss.ReplicationConfiguration{
			Rules: []oss.ReplicationRule{
				{
					RTC: &oss.ReplicationTimeControl{
						Status: oss.Ptr("enabled"), // Aktifkan fitur RTC.
					},
					Destination: &oss.ReplicationDestination{
						Bucket:       oss.Ptr(targetBucket),   // Nama bucket tujuan.
						Location:     oss.Ptr(targetLocation), // Wilayah tempat bucket tujuan berada.
						TransferType: oss.TransferTypeOssAcc,  // Jenis transfer.
					},
					HistoricalObjectReplication: oss.HistoricalObjectReplicationEnabled, // Aktifkan fitur replikasi data historis.
				},
			},
		},
	}

	// Aktifkan replikasi data.
	result, err := client.PutBucketReplication(context.TODO(), request)
	if err != nil {
		log.Fatalf("gagal mengaktifkan replikasi bucket %v", err)
	}

	// Tampilkan hasilnya.
	log.Printf("hasil replikasi bucket:%#v\n", result)
}

CLI ossutil

Untuk petunjuk lengkap tentang cara menggunakan tool baris perintah ossutil untuk mengaktifkan replikasi lintas wilayah, lihat put-bucket-replication.

REST API

Jika aplikasi Anda memiliki persyaratan khusus, Anda dapat membuat permintaan REST API secara langsung. Hal ini mengharuskan Anda menulis kode secara manual untuk menghitung signature. Untuk informasi selengkapnya, lihat PutBucketReplication.

Topik terkait