All Products
Search
Document Center

Object Storage Service:Replikasi akun sama wilayah sama

Last Updated:Jul 16, 2026

Replikasi akun sama wilayah sama secara otomatis dan asinkron (dalam waktu nyaris real-time) mereplikasi operasi seperti pembuatan, pembaruan, dan penghapusan objek dari bucket sumber ke bucket tujuan dalam wilayah dan akun yang sama. Topik ini menjelaskan cara mengonfigurasi replikasi tersebut.

Prasyarat

  • Bucket (Bucket A, bucket sumber) telah dibuat di suatu wilayah akun, serta UID akun, nama Bucket A, dan wilayah tersebut telah dicatat.

  • Bucket (Bucket B, bucket tujuan) telah dibuat di akun dan wilayah yang sama, serta nama Bucket B telah dicatat.

Jenis peran

Saat melakukan replikasi akun sama wilayah sama, Anda harus menentukan peran yang digunakan untuk menjalankan operasi replikasi antara bucket sumber dan bucket tujuan. Anda dapat memilih salah satu dari peran berikut untuk menyelesaikan tugas replikasi tersebut.

Penting

Anda dapat membuat peran menggunakan RAM user. RAM user tersebut harus memiliki izin berikut: ram:CreateRole, ram:GetRole, ram:ListPoliciesForRole, dan ram:AttachPolicyToRole. Karena pemberian izin terkait peran kepada RAM user—seperti ram:CreateRole dan ram:GetRole—mengandung risiko relatif tinggi, kami menyarankan agar Anda membuat RAM role dan menyelesaikan otorisasi peran menggunakan Akun Alibaba Cloud yang terkait dengan RAM user tersebut. Setelah otorisasi selesai, RAM user dapat langsung menggunakan kembali RAM role yang dibuat oleh Akun Alibaba Cloud.

(Direkomendasikan) Buat peran

Saat membuat aturan replikasi akun sama wilayah sama, Anda dapat memilih untuk membuat peran guna menyelesaikan tugas replikasi. Setelah memilih opsi ini, sistem akan secara otomatis membuat peran dalam format oss-replication-{uuid} dan memberikan kebijakan izin yang berbeda tergantung pada apakah Anda memilih untuk mereplikasi objek yang dienkripsi KMS.

  • Replikasi objek yang dienkripsi KMS

    Setelah peran dibuat, Anda harus menyelesaikan otorisasi peran sesuai petunjuk di layar. Setelah otorisasi selesai, peran tersebut memiliki kebijakan izin tepat untuk menyinkronkan data dari bucket sumber ke bucket tujuan, serta kebijakan AliyunKMSCryptoUserAccess (izin untuk mengelola Key Management Service (KMS)).

  • Tidak mereplikasi objek yang dienkripsi KMS

    Setelah peran dibuat, Anda harus menyelesaikan otorisasi peran sesuai petunjuk di layar. Setelah otorisasi selesai, peran tersebut memiliki kebijakan izin tepat untuk menyinkronkan data dari bucket sumber ke bucket tujuan.

AliyunOSSRole

Saat membuat aturan replikasi akun sama wilayah sama, Anda dapat memilih peran AliyunOSSRole untuk menyelesaikan tugas replikasi. Setelah memilih peran ini, sistem akan memberikan kebijakan izin yang berbeda tergantung pada apakah Anda memilih untuk mereplikasi objek yang dienkripsi KMS.

  • Replikasi objek yang dienkripsi KMS

    Setelah memilih peran AliyunOSSRole, sistem secara otomatis memberikan kebijakan izin berikut kepada peran tersebut: AliyunOSSFullAccess (izin untuk mengelola OSS) dan AliyunKMSCryptoUserAccess (izin untuk mengelola KMS).

    Peringatan

    Peran ini memiliki izin untuk menjalankan semua operasi pada semua bucket dan KMS di bawah akun saat ini. Cakupan izinnya luas. Harap berhati-hati.

  • Tidak mereplikasi objek yang dienkripsi KMS

    Setelah memilih peran AliyunOSSRole, sistem secara otomatis memberikan kebijakan AliyunOSSFullAccess (izin untuk mengelola OSS) kepada peran tersebut.

    Peringatan

    Peran ini memiliki izin untuk menjalankan semua operasi pada semua bucket di bawah akun saat ini. Cakupan izinnya luas. Harap berhati-hati.

Peran kustom

Saat membuat aturan replikasi akun sama wilayah sama, 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 biasa.

    Saat membuat peran, atur jenis entitas tepercaya menjadi Alibaba Cloud Service dan layanan tepercaya menjadi Object Storage Service. Untuk langkah-langkah spesifiknya, lihat Buat peran layanan biasa.

  2. Berikan izin kepada peran tersebut.

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

    Berikan kebijakan sistem kepada RAM role

    Peringatan

    Anda dapat memberikan kebijakan sistem AliyunOSSFullAccess kepada RAM role. Secara default, AliyunOSSFullAccess memiliki izin untuk menjalankan semua operasi pada semua bucket di bawah akun saat ini. Harap berhati-hati.

    Jika Anda ingin mereplikasi objek yang dienkripsi KMS ke bucket tujuan, Anda juga harus memberikan kebijakan sistem AliyunKMSFullAccess kepada peran tersebut.

    Untuk langkah-langkah spesifiknya, lihat Kelola izin RAM role.

    Berikan kebijakan kustom kepada RAM role

    Kami menyarankan agar Anda memberikan RAM role hanya izin minimum yang diperlukan untuk replikasi antara bucket sumber (src-bucket) dan bucket tujuan (dest-bucket).

    Catatan

    Dalam penggunaan aktual, ganti nama bucket sumber dan bucket tujuan sesuai kebutuhan.

    {
       "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 langkah-langkah spesifiknya, lihat Kelola izin RAM role.

    Catatan

    Jika Anda ingin mereplikasi objek yang dienkripsi KMS ke bucket tujuan, Anda juga harus memberikan kebijakan sistem AliyunKMSFullAccess kepada peran tersebut.

Penting

Saat mereplikasi data di wilayah yang sama dalam akun yang sama, OSS hanya memverifikasi kebijakan izin RAM role yang digunakan untuk replikasi, dan tidak memverifikasi kebijakan bucket yang dikonfigurasi untuk bucket sumber atau bucket tujuan.

Prosedur

Gunakan Konsol OSS

  1. Masuk ke Konsol OSS.

  2. Klik Buckets, lalu klik src-bucket.

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

  4. Di tab SRR, klik SRR.

  5. Di kotak dialog SRR, konfigurasikan parameter seperti dijelaskan di bawah ini.

    Bagian

    Parameter

    Deskripsi

    Configure Destination Bucket

    Source Bucket

    Menampilkan wilayah dan nama bucket sumber.

    Destination Bucket

    Pilih Select a bucket that belongs to the Alibaba Cloud account, lalu pilih nama bucket tujuan di wilayah yang sama dari daftar drop-down.

    Objects to Replicate

    Pilih data sumber yang akan direplikasi.

    • Synchronize all files: Mereplikasi semua objek di bucket ke bucket tujuan.

    • Replicate objects with a specific prefix: Mereplikasi objek dengan awalan tertentu di bucket ke bucket tujuan. Secara default, hingga 10 awalan dapat ditambahkan. Untuk menambah jumlah awalan, hubungi technical support untuk meminta penyesuaian, hingga maksimal 100.

    Object Tags

    Catatan

    Untuk mengatur parameter ini, kondisi berikut harus dipenuhi:

    • Tag objek telah dikonfigurasi.

    • Copy delete marker dan Copy delete operations for specified versions tidak dipilih.

    Setelah Anda memilih kotak centang Set rule, Anda dapat mereplikasi objek dengan tag tertentu ke bucket tujuan. Hingga 10 tag (pasangan kunci-nilai) dapat ditambahkan. Setelah menambahkan tag, Anda dapat memilih salah satu kebijakan filter tag berikut:

    • Contain all tags: Objek hanya direplikasi jika semua tag-nya ada dalam set tag yang ditentukan dalam aturan filter.

    • Contain any tag: Objek direplikasi jika salah satu tag-nya ada dalam set tag yang ditentukan dalam aturan filter.

    Replicate KMS-Encrypted Source Objects

    Pilih apakah akan mereplikasi objek yang dienkripsi KMS ke bucket tujuan.

    • Yes: Mereplikasi objek ke bucket tujuan ketika objek sumber atau bucket tujuan menggunakan kunci yang dikelola KMS untuk enkripsi (SSE-KMS dengan ID CMK tertentu).

      Catatan

      Anda dapat menggunakan HeadObject dan GetBucketEncryption untuk mengecek status enkripsi objek sumber dan bucket tujuan, masing-masing.

    • No: Tidak mereplikasi objek yang dienkripsi KMS ke bucket tujuan.

    CMK ID

    Jika Anda memilih untuk mereplikasi objek yang dienkripsi KMS ke bucket tujuan, Anda harus menentukan kunci KMS yang digunakan untuk mengenkripsi objek tujuan.

    Sebelum menentukan kunci KMS, Anda harus membuat kunci KMS di wilayah yang sama dengan bucket tujuan di platform KMS. Untuk langkah-langkah spesifiknya, lihat Buat kunci.

    RAM Role

    Kami menyarankan agar Anda memilih New RAM Role. Setelah memilih untuk membuat peran dari daftar drop-down, Anda harus menyelesaikan otorisasi peran sesuai petunjuk di layar.

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

    Configure Replication Policy

    Replicate Historical Data

    Pilih apakah akan mereplikasi data historis yang ada di bucket sumber sebelum aturan replikasi wilayah sama berlaku.

    • Replicate: Mereplikasi data historis ke bucket tujuan.

      Penting

      Saat data historis direplikasi, objek yang direplikasi dari bucket sumber dapat menimpa objek dengan nama yang sama di bucket tujuan. Untuk mencegah kehilangan file tersebut, kami menyarankan agar Anda mengaktifkan Pengendalian versi untuk kedua bucket, baik sumber maupun tujuan.

    • Do not replicate: Hanya mereplikasi objek yang diunggah atau diperbarui setelah aturan replikasi wilayah sama berlaku.

    Copy Delete Operation

    Pilih apakah akan mereplikasi operasi penghapusan bucket sumber ke bucket tujuan.

    Catatan

    Opsi ini ditampilkan di konsol saat Pengendalian versi tidak diaktifkan untuk bucket sumber. Jika Pengendalian versi diaktifkan untuk bucket sumber, opsi ini diganti dengan dua pengaturan independen: Copy Delete Marker dan Copy Delete Operation of Specified Version.

    • Yes (berlaku untuk skenario berbagi dan akses dataset yang sama): Mereplikasi operasi pembuatan, pembaruan, dan penghapusan objek di bucket sumber ke bucket tujuan.

      Penting

      Dengan kebijakan ini, pembuatan, pembaruan, dan penghapusan objek semuanya direplikasi ke bucket tujuan. Saat Anda menghapus objek secara manual di bucket sumber atau objek dihapus secara otomatis oleh aturan lifecycle, objek yang sesuai di bucket tujuan juga dihapus dan tidak dapat dipulihkan.

    • No (berlaku untuk skenario disaster recovery): Hanya mereplikasi operasi pembuatan dan pembaruan objek di bucket sumber ke bucket tujuan. Operasi penghapusan tidak memengaruhi bucket tujuan.

      Catatan

      Metode ini secara efektif mencegah kehilangan data di bucket tujuan akibat penghapusan manual atau penghapusan otomatis oleh aturan lifecycle di bucket sumber.

    Copy Delete Marker

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

    • Replicate: Saat objek dihapus dari bucket sumber tanpa ID versi tertentu, penanda hapus yang dibuat oleh OSS di bucket sumber disinkronkan ke bucket tujuan. Ini berlaku untuk skenario berbagi dan akses dataset yang sama, memastikan konsistensi status data antara bucket sumber dan tujuan.

      Penting

      Setelah mengonfigurasi kebijakan ini, saat Anda menghapus objek secara manual di bucket sumber atau objek dihapus secara otomatis oleh aturan lifecycle, penanda hapus juga disinkronkan ke bucket tujuan, sehingga data tersebut menjadi tidak dapat diakses di sisi tujuan.

    • Do not replicate (berlaku untuk skenario disaster recovery): Penanda hapus yang dibuat di bucket sumber tidak direplikasi ke bucket tujuan. Ini secara efektif mencegah kehilangan data di bucket tujuan akibat penghapusan tidak disengaja atau penghapusan otomatis oleh aturan lifecycle di bucket sumber.

    Copy Delete Operation of Specified Version

    Pilih apakah akan mereplikasi operasi penghapusan permanen untuk versi tertentu di bucket sumber ke bucket tujuan.

    Catatan

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

    • Replicate: Saat versi tertentu file sumber (termasuk versi saat ini dan versi historis) dihapus secara permanen, versi yang sesuai di bucket tujuan juga dihapus secara permanen. Ini berlaku untuk skenario di mana Anda perlu memastikan konsistensi lengkap antara data sumber dan tujuan.

      Penting

      Setelah mengonfigurasi kebijakan ini, versi objek yang dihapus secara permanen dari bucket sumber tidak dapat dipulihkan di bucket tujuan. Harap berhati-hati.

    • Do not replicate (berlaku untuk skenario disaster recovery): Saat versi tertentu objek sumber dihapus secara permanen, versi yang sesuai di bucket tujuan tidak dihapus. Ini mencegah operasi penghapusan permanen di bucket sumber memengaruhi keamanan data di bucket tujuan.

    Jika objek diunggah ke bucket sumber menggunakan unggah multi-bagian, operasi unggah setiap bagian direplikasi ke bucket tujuan. Terakhir, objek yang dihasilkan setelah menjalankan CompleteMultipartUpload pada semua bagian juga direplikasi ke bucket tujuan.

    Untuk informasi tentang perilaku replikasi replikasi wilayah sama yang dikombinasikan dengan Pengendalian versi, lihat Replikasi wilayah sama dikombinasikan dengan Pengendalian versi.

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

    • Setelah aturan replikasi wilayah sama dibuat, aturan tersebut tidak dapat diedit atau dihapus.

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

    • Karena replikasi antar bucket dalam wilayah yang sama menggunakan replikasi asinkron (nyaris real-time), waktu yang diperlukan untuk mereplikasi data ke bucket tujuan bergantung pada ukuran data, dan biasanya berkisar antara beberapa menit hingga beberapa jam.

Gunakan SDK Alibaba Cloud

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

Java

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.AddBucketReplicationRequest;
import com.aliyun.oss.ClientBuilderConfiguration;
import com.aliyun.oss.common.comm.SignVersion;

public class Demo {

    public static void main(String[] args) throws Exception {
        // Dalam contoh ini, endpoint wilayah China (Hangzhou) digunakan. Tentukan endpoint berdasarkan wilayah aktual 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 menyimpan kredensial akses di kode proyek. Jika tidak, kredensial akses dapat bocor dan keamanan semua resource di bawah akun Anda dapat terganggu. Dalam contoh ini, kredensial akses diperoleh dari variabel lingkungan. Sebelum menjalankan kode contoh ini, konfigurasikan variabel lingkungan.
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // Tentukan nama bucket sumber.
        String bucketName = "src-bucket";
        // Tentukan bucket tujuan tempat data direplikasi. Bucket tujuan dan bucket sumber harus berada di bawah akun yang sama.
        String targetBucketName = "dest-bucket";
        // Tentukan wilayah bucket tujuan. Bucket tujuan dan bucket sumber harus berada di wilayah yang sama.
        String targetBucketLocation = "oss-cn-hangzhou";

        // Buat instance OSSClient.
        // Saat instance OSSClient tidak lagi digunakan, panggil metode shutdown untuk melepas resource.
        ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
        // Secara eksplisit deklarasikan 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);
            // Data historis direplikasi secara default. Atur ke false untuk menonaktifkan replikasi data historis.
            request.setEnableHistoricalObjectReplication(false);
            // Tentukan nama peran yang mengotorisasi OSS untuk mereplikasi data. Peran tersebut harus diberikan izin untuk menjalankan replikasi wilayah sama pada bucket sumber dan menerima objek yang direplikasi di bucket tujuan.
            request.setSyncRole("yourRole");
            // Tentukan apakah OSS mereplikasi objek yang dibuat menggunakan 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. Setelah Anda menentukan awalan, hanya objek yang sesuai 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("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();
            }
        }
    }
}        

Python

# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
from oss2.models import ReplicationRule
# Peroleh 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 yang sesuai dengan wilayah bucket sumber. Misalnya, jika bucket sumber berada di wilayah China (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 data direplikasi. Bucket tujuan dan bucket sumber harus berada di bawah akun yang sama.
    target_bucket_name='dest-bucket',
    # Tentukan wilayah bucket tujuan. Bucket tujuan dan bucket sumber harus berada di wilayah yang sama.
    target_bucket_location='oss-cn-hangzhou',
    # Tentukan nama peran yang mengotorisasi OSS untuk mereplikasi data. Peran tersebut harus diberikan izin untuk menjalankan replikasi wilayah sama pada bucket sumber dan menerima objek yang direplikasi di bucket tujuan.
    sync_role_name='roleNameTest',
)

# Tentukan awalan objek yang akan direplikasi. Setelah Anda menentukan awalan, hanya objek yang sesuai 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 data direplikasi.
     # target_bucket_name='dest-bucket',
     # Tentukan wilayah bucket tujuan.
     # target_bucket_location='yourTargetBucketLocation',
     # Data historis direplikasi secara default. Atur ke False untuk menonaktifkan replikasi data historis.
     # is_enable_historical_object_replication=False,
     # Replikasi objek yang dibuat menggunakan enkripsi SSE-KMS.
     # sse_kms_encrypted_objects_status=ReplicationRule.ENABLED
     # Tentukan ID kunci SSE-KMS. Elemen ini wajib jika Anda menentukan untuk mereplikasi objek yang dibuat menggunakan enkripsi SSE-KMS.
     # replica_kms_keyid='9468da86-3509-4f8d-a61e-6eab1eac****',
  #)

# Aktifkan replikasi data.
bucket.put_bucket_replication(replica_config)

Go

package main

import (
	"encoding/xml"
	"fmt"
	"github.com/aliyun/aliyun-oss-go-sdk/oss"
	"os"
)

func HandleError(err error) {
	fmt.Println("Error:", err)
	os.Exit(-1)
}

// Aktifkan replikasi data.
func main() {
	// Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
	// Buat instance OSSClient.
	// Atur yourEndpoint ke endpoint yang sesuai dengan bucket. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur ke https://oss-cn-hangzhou.aliyuncs.com. Tentukan wilayah lain berdasarkan situasi aktual Anda.
	client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider))
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
	// Tentukan nama bucket sumber.
	srcbucketName := "yourSrcBucket"
	// Tentukan bucket tujuan tempat data direplikasi.
	destBucketName := "yourDestBucket"
	// Tentukan awalan prefix_1 dan prefix_2 objek yang akan direplikasi. Setelah Anda menentukan awalan, hanya objek yang sesuai dengan awalan tersebut yang direplikasi ke bucket tujuan.
	// Jika Anda ingin mereplikasi semua objek di bucket sumber ke bucket tujuan, Anda tidak perlu menentukan awalan.
	prefix1 := "prefix_1"
	prefix2 := "prefix_2"
	// Tentukan ID kunci SSE-KMS. Elemen ini wajib jika Status diatur ke Enabled.
	keyId := "c4d49f85-ee30-426b-a5ed-95e9****"
	// Tentukan apakah OSS mereplikasi objek yang dibuat menggunakan enkripsi SSE-KMS.
	source := "Enabled"
	prefixSet := oss.ReplicationRulePrefix{Prefix: []*string{&prefix1, &prefix2}}
	reqReplication := oss.PutBucketReplication{
		Rule: []oss.ReplicationRule{
			{
				PrefixSet: &prefixSet,
				//Replikasi operasi pembuatan dan pembaruan objek di bucket sumber ke bucket tujuan.
				Action: "PUT",
				Destination: &oss.ReplicationRuleDestination{
					Bucket: destBucketName,
					// Tentukan wilayah bucket tujuan. Bucket sumber dan bucket tujuan harus berada di wilayah yang berbeda.
					Location: "oss-cn-hangzhou",
				},
				// Data historis direplikasi secara default. Atur ke disabled untuk menonaktifkan replikasi data historis.
				HistoricalObjectReplication: "disabled",
				// Tentukan nama peran yang mengotorisasi OSS untuk mereplikasi data. Peran tersebut harus diberikan izin untuk menjalankan replikasi wilayah sama pada bucket sumber dan menerima objek yang direplikasi di bucket tujuan.
				SyncRole:                "yourRole",
				EncryptionConfiguration: &keyId,
				SourceSelectionCriteria: &source,
			},
		},
	}

	xmlBody, err := xml.Marshal(reqReplication)
	if err != nil {
		HandleError(err)
	}
	err = client.PutBucketReplication(srcbucketName, string(xmlBody))

	if err != nil {
		HandleError(err)
	}

	fmt.Println("Put Bucket Replication Success!")
}

Gunakan tool baris perintah ossutil

Untuk langkah-langkah spesifik mengaktifkan replikasi wilayah sama menggunakan ossutil, lihat put-bucket-replication.

Gunakan REST API

Jika program Anda memiliki persyaratan kustomisasi tinggi, Anda dapat langsung mengirim permintaan REST API. Untuk mengirim permintaan REST API secara langsung, Anda harus menulis kode secara manual untuk menghitung signature. Untuk informasi lebih lanjut, lihat PutBucketReplication.