全部产品
Search
文档中心

Object Storage Service:Kelola kolam sumber daya QoS (Go SDK V2)

更新时间:Nov 12, 2025

Topik ini menjelaskan cara menggunakan Go SDK V2 untuk mengelola dan mengonfigurasi Quality of Service (QoS) kolam sumber daya.

Perhatian

  • Kode contoh dalam topik ini menggunakan ID wilayah China (Hangzhou) cn-hangzhou sebagai contoh. Secara default, endpoint publik digunakan. Jika Anda ingin mengakses OSS dari produk Alibaba Cloud lainnya di wilayah yang sama, gunakan endpoint jaringan internal. Untuk informasi lebih lanjut mengenai pemetaan antara wilayah yang didukung OSS dan endpoint, lihat Wilayah dan Endpoint.

Manajemen bandwidth bucket

Konfigurasikan throttling untuk bucket dalam kolam sumber daya

package main

import (
	"bytes"
	"context"
	"crypto/md5"
	"encoding/base64"
	"fmt"
	"os"

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

func PutBucketQoSInfo() {
	// Tentukan wilayah tempat bucket berada. Misalnya, atur wilayah ke cn-hangzhou untuk China (Hangzhou).
	var region = "cn-hangzhou"

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

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

	// Definisikan nama bucket.
	bucketName := "examplebucket"

	// Baca konten file konfigurasi QoS.
	qosConf, err := os.ReadFile("qos.xml")
	if err != nil {
		// Jika terjadi kesalahan saat membaca file konfigurasi QoS, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("gagal membaca qos.xml: %v\n", err)
		os.Exit(1)
	}

	// Hitung hash MD5 dari data masukan dan ubah menjadi string yang dikodekan Base64.
	calcMd5 := func(input []byte) string {
		if len(input) == 0 {
			return "1B2M2Y8AsgTpgAmY7PhCfg=="
		}
		h := md5.New()
		h.Write(input)
		return base64.StdEncoding.EncodeToString(h.Sum(nil))
	}

	// Buat parameter masukan untuk operasi, termasuk aksi, jenis metode, dan parameter.
	input := &oss.OperationInput{
		OpName: "PutBucketQoSInfo", // Action
		Method: "PUT",              // Metode HTTP
		Parameters: map[string]string{
			"qosInfo": "", // Parameter terkait QoS
		},
		Headers: map[string]string{
			"Content-MD5": calcMd5(qosConf), // Atur header Content-MD5 untuk badan permintaan guna memastikan integritas data.
		},
		Body:   bytes.NewReader(qosConf), // Badan permintaan yang berisi konfigurasi QoS.
		Bucket: oss.Ptr(bucketName),      // Nama bucket
	}

	// Jalankan operasi dan terima tanggapan atau kesalahan.
	res, err := client.InvokeOperation(context.TODO(), input)
	if err != nil {
		// Jika terjadi kesalahan, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("invoke operation got error: %v\n", err)
		os.Exit(1)
	}

	// Cetak hasil operasi.
	fmt.Println("The result of PutBucketQoSInfo:", res.Status)
}

Dapatkan konfigurasi throttling bucket

package main

import (
	"context"
	"fmt"
	"io"
	"os"

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

func GetBucketQoSInfo() {
	// Tentukan wilayah tempat bucket berada. Misalnya, atur wilayah ke cn-hangzhou untuk China (Hangzhou).
	var region = "cn-hangzhou"

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

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

	// Definisikan nama bucket.
	bucketName := "examplebucket"

	// Buat parameter masukan untuk operasi, termasuk aksi, jenis metode, dan parameter.
	input := &oss.OperationInput{
		OpName: "GetBucketQoSInfo", // Action
		Method: "GET",              // Metode HTTP
		Parameters: map[string]string{
			"qosInfo": "", // Parameter terkait QoS
		},
		Headers: map[string]string{}, // Header HTTP
		Body:    nil,                 // Badan permintaan biasanya kosong untuk permintaan GET.
		Bucket:  oss.Ptr(bucketName), // Nama bucket
	}

	// Jalankan operasi dan terima tanggapan atau kesalahan.
	res, err := client.InvokeOperation(context.TODO(), input)
	if err != nil {
		// Jika terjadi kesalahan, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("invoke operation got error: %v\n", err)
		os.Exit(1)
	}

	// Baca badan tanggapan.
	body, err := io.ReadAll(res.Body)
	if err != nil {
		// Jika terjadi kesalahan saat membaca badan tanggapan, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("gagal membaca badan tanggapan: %v\n", err)
		os.Exit(1)
	}

	// Tutup badan tanggapan untuk melepaskan sumber daya.
	if res.Body != nil {
		res.Body.Close()
	}

	// Cetak hasil operasi.
	fmt.Println("The result of GetBucketQoSInfo:", string(body))
}

Hapus konfigurasi throttling bucket tertentu dalam kolam sumber daya

package main

import (
	"context"
	"fmt"
	"os"

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

func DeleteBucketQoSInfo() {
	// Tentukan wilayah tempat bucket berada. Misalnya, atur wilayah ke cn-hangzhou untuk China (Hangzhou).
	var region = "cn-hangzhou"

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

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

	// Definisikan nama bucket.
	bucketName := "examplebucket"

	// Buat parameter masukan untuk operasi, termasuk aksi, jenis metode, dan parameter.
	input := &oss.OperationInput{
		OpName: "DeleteBucketQoSInfo", // Action
		Method: "DELETE",              // Metode HTTP
		Parameters: map[string]string{
			"qosInfo": "", // Parameter terkait QoS
		},
		Headers: map[string]string{}, // Header HTTP
		Body:    nil,                 // Badan permintaan biasanya kosong untuk permintaan DELETE.
		Bucket:  oss.Ptr(bucketName), // Nama bucket
	}

	// Jalankan operasi dan terima tanggapan atau kesalahan.
	res, err := client.InvokeOperation(context.TODO(), input)
	if err != nil {
		// Jika terjadi kesalahan, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("invoke operation got error: %v\n", err)
		os.Exit(1)
	}

	// Cetak hasil operasi.
	fmt.Println("The result of DeleteBucketQoSInfo:", res.Status)
}

Manajemen bandwidth untuk pihak perequest berbeda di tingkat bucket

Konfigurasikan throttling untuk pihak perequest di tingkat bucket

package main

import (
	"bytes"
	"context"
	"crypto/md5"
	"encoding/base64"
	"fmt"
	"os"

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

func PutBucketRequesterQoSInfo() {
	// Tentukan wilayah tempat bucket berada. Misalnya, atur wilayah ke cn-hangzhou untuk China (Hangzhou).
	var region = "cn-hangzhou"

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

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

	// Definisikan nama bucket dan ID perequest.
	bucketName := "examplebucket"
	requester := "2598732222222xxxx"

	// Baca konten file konfigurasi QoS.
	qosConf, err := os.ReadFile("qos.xml")
	if err != nil {
		// Jika terjadi kesalahan saat membaca file konfigurasi QoS, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("gagal membaca qos.xml: %v\n", err)
		os.Exit(1)
	}

	// Hitung hash MD5 dari data masukan dan ubah menjadi string yang dikodekan Base64.
	calcMd5 := func(input []byte) string {
		if len(input) == 0 {
			return "1B2M2Y8AsgTpgAmY7PhCfg=="
		}
		h := md5.New()
		h.Write(input)
		return base64.StdEncoding.EncodeToString(h.Sum(nil))
	}

	// Buat parameter masukan untuk operasi, termasuk aksi, jenis metode, dan parameter.
	input := &oss.OperationInput{
		OpName: "PutBucketRequesterQoSInfo", // Aksi harus sesuai dengan operasi aktual.
		Method: "PUT",                       // Metode HTTP
		Parameters: map[string]string{
			"requesterQosInfo": "",        // Parameter terkait QoS perequest.
			"qosRequester":     requester, // ID perequest
		},
		Headers: map[string]string{
			"Content-MD5": calcMd5(qosConf), // Atur header Content-MD5 untuk badan permintaan guna memastikan integritas data.
		},
		Body:   bytes.NewReader(qosConf), // Badan permintaan yang berisi konfigurasi QoS.
		Bucket: oss.Ptr(bucketName),      // Nama bucket
	}

	// Jalankan operasi dan terima tanggapan atau kesalahan.
	res, err := client.InvokeOperation(context.TODO(), input)
	if err != nil {
		// Jika terjadi kesalahan, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("invoke operation got error: %v\n", err)
		os.Exit(1)
	}

	// Cetak hasil operasi.
	fmt.Println("The result of PutBucketRequesterQoSInfo:", res.Status)
}

Dapatkan konfigurasi throttling untuk perequest tertentu di tingkat bucket

package main

import (
	"context"
	"fmt"
	"io"
	"os"

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

func GetBucketRequesterQoSInfo() {
	// Tentukan wilayah tempat bucket berada. Misalnya, atur wilayah ke cn-hangzhou untuk China (Hangzhou).
	var region = "cn-hangzhou"

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

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

	// Definisikan nama bucket dan ID perequest.
	bucketName := "examplebucket"
	requester := "2598732222222xxxx"

	// Buat parameter masukan untuk operasi, termasuk aksi, jenis metode, dan parameter.
	input := &oss.OperationInput{
		OpName: "GetBucketRequesterQoSInfo", // Action
		Method: "GET",                       // Metode HTTP
		Parameters: map[string]string{
			"requesterQosInfo": "",        // Parameter terkait QoS perequest.
			"qosRequester":     requester, // ID perequest
		},
		Headers: map[string]string{}, // Header HTTP
		Body:    nil,                 // Badan permintaan biasanya kosong untuk permintaan GET.
		Bucket:  oss.Ptr(bucketName), // Nama bucket
	}

	// Jalankan operasi dan terima tanggapan atau kesalahan.
	res, err := client.InvokeOperation(context.TODO(), input)
	if err != nil {
		// Jika terjadi kesalahan, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("invoke operation got error: %v\n", err)
		os.Exit(1)
	}

	// Baca badan tanggapan.
	body, err := io.ReadAll(res.Body)
	if err != nil {
		// Jika terjadi kesalahan saat membaca badan tanggapan, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("gagal membaca badan tanggapan: %v\n", err)
		os.Exit(1)
	}

	// Tutup badan tanggapan untuk melepaskan sumber daya.
	if res.Body != nil {
		res.Body.Close()
	}

	// Cetak hasil operasi.
	fmt.Println("The result of GetBucketRequesterQoSInfo:", string(body))
}

Dapatkan konfigurasi throttling untuk semua perequest di tingkat bucket

package main

import (
	"context"
	"fmt"
	"io"
	"os"

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

func ListBucketRequesterQoSInfos() {
	// Tentukan wilayah tempat bucket berada. Misalnya, atur wilayah ke cn-hangzhou untuk China (Hangzhou).
	var region = "cn-hangzhou"

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

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

	// Definisikan nama bucket.
	bucketName := "examplebucket"

	// Buat parameter masukan untuk operasi, termasuk aksi, jenis metode, dan parameter.
	input := &oss.OperationInput{
		OpName: "ListBucketRequesterQoSInfos", // Action
		Method: "GET",                         // Metode HTTP
		Parameters: map[string]string{
			"requesterQosInfo": "", // Parameter terkait QoS perequest.
			// Parameter opsional:
			// "continuation-token": "25987311111111xxxx", // Token kelanjutan untuk penomoran halaman.
			// "max-keys":           "1",                  // Jumlah maksimum entri yang akan dikembalikan.
		},
		Headers: map[string]string{}, // Header HTTP
		Body:    nil,                 // Badan permintaan biasanya kosong untuk permintaan GET.
		Bucket:  oss.Ptr(bucketName), // Nama bucket
	}

	// Jalankan operasi dan terima tanggapan atau kesalahan.
	res, err := client.InvokeOperation(context.TODO(), input)
	if err != nil {
		// Jika terjadi kesalahan, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("invoke operation got error: %v\n", err)
		os.Exit(1)
	}

	// Baca badan tanggapan.
	body, err := io.ReadAll(res.Body)
	if err != nil {
		// Jika terjadi kesalahan saat membaca badan tanggapan, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("gagal membaca badan tanggapan: %v\n", err)
		os.Exit(1)
	}

	// Tutup badan tanggapan untuk melepaskan sumber daya.
	if res.Body != nil {
		res.Body.Close()
	}

	// Cetak hasil operasi.
	fmt.Println("The result of ListBucketRequesterQoSInfos:", string(body))
}

Hapus konfigurasi throttling untuk perequest bucket

package main

import (
	"context"
	"fmt"
	"os"

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

func DeleteBucketRequesterQoSInfo() {
	// Tentukan wilayah tempat bucket berada. Misalnya, atur wilayah ke cn-hangzhou untuk China (Hangzhou).
	var region = "cn-hangzhou"

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

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

	// Definisikan nama bucket dan ID perequest.
	bucketName := "examplebucket"
	requester := "2033310434633xxxx"

	// Buat parameter masukan untuk operasi, termasuk aksi, jenis metode, dan parameter.
	input := &oss.OperationInput{
		OpName: "DeleteBucketRequesterQoSInfo", // Action
		Method: "DELETE",                       // Metode HTTP
		Parameters: map[string]string{
			"requesterQosInfo": "",        // Parameter terkait QoS perequest.
			"qosRequester":     requester, // ID perequest
		},
		Headers: map[string]string{}, // Header HTTP
		Body:    nil,                 // Badan permintaan biasanya kosong untuk permintaan DELETE.
		Bucket:  oss.Ptr(bucketName), // Nama bucket
	}

	// Jalankan operasi dan terima tanggapan atau kesalahan.
	res, err := client.InvokeOperation(context.TODO(), input)
	if err != nil {
		// Jika terjadi kesalahan, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("invoke operation got error: %v\n", err)
		os.Exit(1)
	}

	// Cetak hasil operasi.
	fmt.Println("The result of DeleteBucketRequesterQoSInfo:", res.Status)
}

Manajemen bandwidth untuk pihak perequest berbeda di tingkat kolam sumber daya

Dapatkan informasi tentang semua kolam sumber daya di bawah akun saat ini

package main

import (
	"context"
	"fmt"
	"io"
	"os"

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

func ListResourcePools() {
	// Tentukan wilayah tempat bucket berada. Misalnya, atur wilayah ke cn-hangzhou untuk China (Hangzhou).
	var region = "cn-hangzhou"

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

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

	// Buat parameter masukan untuk operasi, termasuk aksi, jenis metode, dan parameter.
	input := &oss.OperationInput{
		OpName: "ListResourcePools", // Action
		Method: "GET",               // Metode HTTP
		Parameters: map[string]string{
			"resourcePool": "", // Parameter terkait kolam sumber daya.
			// Parameter opsional:
			// "continuation-token": "example-resource-pool", // Token kelanjutan untuk penomoran halaman.
			// "max-keys":           "1",       // Jumlah maksimum entri yang akan dikembalikan.
		},
		Headers: map[string]string{}, // Header HTTP
		Body:    nil,                 // Badan permintaan biasanya kosong untuk permintaan GET.
		Bucket:  nil,                 // Operasi ini tidak menargetkan bucket tertentu.
	}

	// Jalankan operasi dan terima tanggapan atau kesalahan.
	res, err := client.InvokeOperation(context.TODO(), input)
	if err != nil {
		// Jika terjadi kesalahan, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("invoke operation got error: %v\n", err)
		os.Exit(1)
	}

	// Baca badan tanggapan.
	body, err := io.ReadAll(res.Body)
	if err != nil {
		// Jika terjadi kesalahan saat membaca badan tanggapan, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("gagal membaca badan tanggapan: %v\n", err)
		os.Exit(1)
	}

	// Tutup badan tanggapan untuk melepaskan sumber daya.
	if res.Body != nil {
		res.Body.Close()
	}

	// Cetak hasil operasi.
	fmt.Println("The result of ListResourcePools:", string(body))
}

Dapatkan informasi tentang kolam sumber daya tertentu

package main

import (
	"context"
	"fmt"
	"io"
	"os"

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

func GetResourcePoolInfo() {
	// Tentukan wilayah tempat bucket berada. Misalnya, atur wilayah ke cn-hangzhou untuk China (Hangzhou).
	var region = "cn-hangzhou"

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

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

	// Buat parameter masukan untuk operasi, termasuk aksi, jenis metode, dan parameter.
	input := &oss.OperationInput{
		OpName: "GetResourcePoolInfo", // Action
		Method: "GET",                 // Metode HTTP
		Parameters: map[string]string{
			"resourcePoolInfo": "",         // Parameter terkait informasi kolam sumber daya.
			"resourcePool":     "example-resource-pool", // Nama kolam sumber daya yang akan diquery.
		},
		Headers: map[string]string{}, // Header HTTP
		Body:    nil,                 // Badan permintaan biasanya kosong untuk permintaan GET.
		Bucket:  nil,                 // Operasi ini tidak menargetkan bucket tertentu.
	}

	// Jalankan operasi dan terima tanggapan atau kesalahan.
	res, err := client.InvokeOperation(context.TODO(), input)
	if err != nil {
		// Jika terjadi kesalahan, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("invoke operation got error: %v\n", err)
		os.Exit(1)
	}

	// Baca badan tanggapan.
	body, err := io.ReadAll(res.Body)
	if err != nil {
		// Jika terjadi kesalahan saat membaca badan tanggapan, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("gagal membaca badan tanggapan: %v\n", err)
		os.Exit(1)
	}

	// Tutup badan tanggapan untuk melepaskan sumber daya.
	if res.Body != nil {
		res.Body.Close()
	}

	// Cetak hasil operasi.
	fmt.Println("The result of GetResourcePoolInfo:", string(body))
}

Dapatkan daftar bucket dalam kolam sumber daya tertentu

package main

import (
	"context"
	"fmt"
	"io"
	"os"

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

func ListResourcePoolBuckets() {
	// Tentukan wilayah tempat bucket berada. Misalnya, atur wilayah ke cn-hangzhou untuk China (Hangzhou).
	var region = "cn-hangzhou"

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

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

	// Buat parameter masukan untuk operasi, termasuk aksi, jenis metode, dan parameter.
	input := &oss.OperationInput{
		OpName: "ListResourcePoolBucketGroups", // Action
		Method: "GET",                          // Metode HTTP
		Parameters: map[string]string{ // Daftar parameter
			"resourcePool": "example-resource-pool", // Nama kolam sumber daya
		},
		Headers: map[string]string{}, // Header HTTP
		Body:    nil,                 // Badan permintaan
		Bucket:  nil,                 // Nama bucket kosong karena operasi ini tidak menargetkan bucket tertentu.
	}

	// Jalankan operasi dan terima tanggapan atau kesalahan.
	res, err := client.InvokeOperation(context.TODO(), input)
	if err != nil {
		// Jika terjadi kesalahan, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("invoke operation got error: %v\n", err)
		os.Exit(1)
	}

	// Baca badan tanggapan.
	body, err := io.ReadAll(res.Body)
	if err != nil {
		// Jika terjadi kesalahan saat membaca badan tanggapan, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("gagal membaca badan tanggapan: %v\n", err)
		os.Exit(1)
	}

	// Tutup badan tanggapan untuk melepaskan sumber daya.
	if res.Body != nil {
		res.Body.Close()
	}

	// Cetak hasil operasi.
	fmt.Println("The result of ListResourcePoolBucketGroups:", string(body))
}

Konfigurasikan throttling untuk peminta dalam kolam sumber daya

package main

import (
	"bytes"
	"context"
	"crypto/md5"
	"encoding/base64"
	"fmt"
	"os"

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

func PutResourcePoolRequesterQoSInfo() {
	// Tentukan wilayah tempat bucket berada. Misalnya, atur wilayah ke cn-hangzhou untuk China (Hangzhou).
	var region = "cn-hangzhou"

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

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

	// Definisikan nama kolam sumber daya dan ID perequest.
	resourcePool := "example-resource-pool"
	requester := "2598733333333xxxx"

	// Baca konten file konfigurasi QoS.
	qosConf, err := os.ReadFile("qos.xml")
	if err != nil {
		// Jika terjadi kesalahan saat membaca file konfigurasi QoS, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("gagal membaca qos.xml: %v\n", err)
		os.Exit(1)
	}

	// Hitung hash MD5 dari data masukan dan ubah menjadi string yang dikodekan Base64.
	calcMd5 := func(input []byte) string {
		if len(input) == 0 {
			return "1B2M2Y8AsgTpgAmY7PhCfg=="
		}
		h := md5.New()
		h.Write(input)
		return base64.StdEncoding.EncodeToString(h.Sum(nil))
	}

	// Buat parameter masukan untuk operasi, termasuk aksi, jenis metode, dan parameter.
	input := &oss.OperationInput{
		OpName: "PutResourcePoolRequesterQoSInfo", // Action
		Method: "PUT",                             // Metode HTTP
		Parameters: map[string]string{
			"requesterQosInfo": "",           // Parameter terkait QoS perequest.
			"resourcePool":     resourcePool, // Nama kolam sumber daya
			"qosRequester":     requester,    // ID perequest
		},
		Headers: map[string]string{
			"Content-MD5": calcMd5(qosConf), // Atur header Content-MD5 untuk badan permintaan guna memastikan integritas data.
		},
		Body:   bytes.NewReader(qosConf), // Badan permintaan yang berisi konfigurasi QoS.
		Bucket: nil,                      // Operasi ini tidak menargetkan bucket tertentu.
	}

	// Jalankan operasi dan terima tanggapan atau kesalahan.
	res, err := client.InvokeOperation(context.TODO(), input)
	if err != nil {
		// Jika terjadi kesalahan, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("invoke operation got error: %v\n", err)
		os.Exit(1)
	}

	// Cetak hasil operasi.
	fmt.Println("The result of PutResourcePoolRequesterQoSInfo:", res.Status)
}

Dapatkan konfigurasi throttling untuk perequest tertentu dalam kolam sumber daya

package main

import (
	"context"
	"fmt"
	"io"
	"os"

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

func GetResourcePoolRequesterQoSInfo() {
	// Tentukan wilayah tempat bucket berada. Misalnya, atur wilayah ke cn-hangzhou untuk China (Hangzhou).
	var region = "cn-hangzhou"

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

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

	// Definisikan nama kolam sumber daya dan ID perequest.
	resourcePool := "example-resource-pool"
	requester := "2598732222222xxxx"

	// Buat parameter masukan untuk operasi, termasuk aksi, jenis metode, dan parameter.
	input := &oss.OperationInput{
		OpName: "GetResourcePoolRequesterQoSInfo", // Action
		Method: "GET",                             // Metode HTTP
		Parameters: map[string]string{
			"requesterQosInfo": "",           // Parameter terkait QoS perequest.
			"resourcePool":     resourcePool, // Nama kolam sumber daya
			"qosRequester":     requester,    // ID perequest
		},
		Headers: map[string]string{}, // Header HTTP
		Body:    nil,                 // Badan permintaan biasanya tidak diperlukan untuk permintaan GET.
		Bucket:  nil,                 // Operasi ini tidak menargetkan bucket tertentu.
	}

	// Jalankan operasi dan terima tanggapan atau kesalahan.
	res, err := client.InvokeOperation(context.TODO(), input)
	if err != nil {
		// Jika terjadi kesalahan, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("invoke operation got error: %v\n", err)
		os.Exit(1)
	}

	// Baca badan tanggapan.
	body, err := io.ReadAll(res.Body)
	if err != nil {
		// Jika terjadi kesalahan saat membaca badan tanggapan, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("gagal membaca badan tanggapan: %v\n", err)
		os.Exit(1)
	}

	// Tutup badan tanggapan untuk melepaskan sumber daya.
	if res.Body != nil {
		res.Body.Close()
	}

	// Cetak hasil operasi.
	fmt.Println("The result of GetResourcePoolRequesterQoSInfo:", string(body))
}

Dapatkan konfigurasi throttling untuk semua perequest dalam kolam sumber daya

package main

import (
	"context"
	"fmt"
	"io"
	"os"

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

func ListResourcePoolRequesterQoSInfos() {
	// Tentukan wilayah tempat bucket berada. Misalnya, atur wilayah ke cn-hangzhou untuk China (Hangzhou).
	var region = "cn-hangzhou"

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

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

	// Definisikan nama kolam sumber daya.
	resourcePool := "example-resource-pool"

	// Buat parameter masukan untuk operasi, termasuk aksi, jenis metode, dan parameter.
	input := &oss.OperationInput{
		OpName: "ListResourcePoolRequesterQoSInfos", // Action
		Method: "GET",                               // Metode HTTP
		Parameters: map[string]string{
			"requesterQosInfo": "",           // Parameter terkait QoS perequest.
			"resourcePool":     resourcePool, // Nama kolam sumber daya
			// Parameter opsional:
			// "continuation-token": "25987311111111xxxx", // Token kelanjutan untuk penomoran halaman.
			// "max-keys":           "1",                  // Jumlah maksimum entri yang akan dikembalikan.
		},
		Headers: map[string]string{}, // Header HTTP
		Body:    nil,                 // Badan permintaan biasanya tidak diperlukan untuk permintaan GET.
		Bucket:  nil,                 // Operasi ini tidak menargetkan bucket tertentu.
	}

	// Jalankan operasi dan terima tanggapan atau kesalahan.
	res, err := client.InvokeOperation(context.TODO(), input)
	if err != nil {
		// Jika terjadi kesalahan, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("invoke operation got error: %v\n", err)
		os.Exit(1)
	}

	// Baca badan tanggapan.
	body, err := io.ReadAll(res.Body)
	if err != nil {
		// Jika terjadi kesalahan saat membaca badan tanggapan, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("gagal membaca badan tanggapan: %v\n", err)
		os.Exit(1)
	}

	// Tutup badan tanggapan untuk melepaskan sumber daya.
	if res.Body != nil {
		res.Body.Close()
	}

	// Cetak hasil operasi.
	fmt.Println("The result of ListResourcePoolRequesterQoSInfos:", string(body))
}

Hapus konfigurasi throttling untuk perequest tertentu dalam kolam sumber daya

package main

import (
	"context"
	"fmt"
	"os"

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

func DeleteResourcePoolRequesterQoSInfo() {
	// Tentukan wilayah tempat bucket berada. Misalnya, atur wilayah ke cn-hangzhou untuk China (Hangzhou).
	var region = "cn-hangzhou"

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

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

	// Definisikan nama kolam sumber daya dan ID perequest.
	resourcePool := "example-resource-pool"
	requester := "2598732222222xxxx"

	// Buat parameter masukan untuk operasi, termasuk aksi, jenis metode, dan parameter.
	input := &oss.OperationInput{
		OpName: "DeleteResourcePoolRequesterQoSInfo", // Action
		Method: "DELETE",                             // Metode HTTP
		Parameters: map[string]string{
			"requesterQosInfo": "",           // Parameter terkait QoS perequest.
			"resourcePool":     resourcePool, // Nama kolam sumber daya
			"qosRequester":     requester,    // ID perequest
		},
		Headers: map[string]string{}, // Header HTTP
		Body:    nil,                 // Badan permintaan biasanya tidak diperlukan untuk permintaan DELETE.
		Bucket:  nil,                 // Operasi ini tidak menargetkan bucket tertentu.
	}

	// Jalankan operasi dan terima tanggapan atau kesalahan.
	res, err := client.InvokeOperation(context.TODO(), input)
	if err != nil {
		// Jika terjadi kesalahan, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("invoke operation got error: %v\n", err)
		os.Exit(1)
	}

	// Cetak hasil operasi.
	fmt.Println("The result of DeleteResourcePoolRequesterQoSInfo:", res.Status)
}

Manajemen QoS prioritas kolam sumber daya

Tetapkan konfigurasi QoS prioritas untuk kolam sumber daya

package main

import (
	"bytes"
	"context"
	"crypto/md5"
	"encoding/base64"
	"fmt"
	"os"

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

func PutResourcePoolPriorityQosConfiguration() {
	// Tentukan wilayah tempat bucket berada. Misalnya, atur wilayah ke cn-hangzhou untuk China (Hangzhou).
	var region = "cn-hangzhou"

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

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

	// Definisikan nama kolam sumber daya.
	resourcePool := "hz-rp-01"

	// Baca konten file konfigurasi QoS prioritas.
	qosConf, err := os.ReadFile("priority-qos.xml")
	if err != nil {
		// Jika terjadi kesalahan saat membaca file konfigurasi QoS, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("gagal membaca qos.xml: %v\n", err)
		os.Exit(1)
	}

	// Hitung hash MD5 dari data masukan dan ubah menjadi string yang dikodekan Base64.
	calcMd5 := func(input []byte) string {
		if len(input) == 0 {
			return "1B2M2Y8AsgTpgAmY7PhCfg=="
		}
		h := md5.New()
		h.Write(input)
		return base64.StdEncoding.EncodeToString(h.Sum(nil))
	}

	// Buat parameter masukan untuk operasi, termasuk aksi, jenis metode, dan parameter.
	input := &oss.OperationInput{
		OpName: "PutResourcePoolPriorityQoSConfiguration", // Action
		Method: "PUT",                                     // Metode HTTP
		Parameters: map[string]string{
			"priorityQos":  "",           // Parameter terkait QoS prioritas.
			"resourcePool": resourcePool, // Nama kolam sumber daya
		},
		Headers: map[string]string{
			"Content-MD5": calcMd5(qosConf), // Atur header Content-MD5 untuk badan permintaan guna memastikan integritas data.
		},
		Body:   bytes.NewReader(qosConf), // Badan permintaan yang berisi konfigurasi QoS.
		Bucket: nil,                      // Operasi ini tidak menargetkan bucket tertentu.
	}

	// Jalankan operasi dan terima tanggapan atau kesalahan.
	res, err := client.InvokeOperation(context.TODO(), input)
	if err != nil {
		// Jika terjadi kesalahan, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("invoke operation got error: %v\n", err)
		os.Exit(1)
	}

	// Cetak hasil operasi.
	fmt.Println("The result of PutResourcePoolPriorityQoSConfiguration:", res.Status)
}

Dapatkan konfigurasi QoS prioritas kolam sumber daya

package main

import (
	"context"
	"fmt"
	"io"
	"os"

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

func GetResourcePoolPriorityQosConfiguration() {
	// Tentukan wilayah tempat bucket berada. Misalnya, atur wilayah ke cn-hangzhou untuk China (Hangzhou).
	var region = "cn-hangzhou"

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

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

	// Definisikan nama kolam sumber daya.
	resourcePool := "hz-rp-01"

	// Buat parameter masukan untuk operasi, termasuk aksi, jenis metode, dan parameter.
	input := &oss.OperationInput{
		OpName: "GetResourcePoolPriorityQoSConfiguration", // Action
		Method: "GET",                                     // Metode HTTP
		Parameters: map[string]string{
			"priorityQos":  "",           // Parameter terkait QoS prioritas.
			"resourcePool": resourcePool, // Nama kolam sumber daya
		},
		Headers: map[string]string{}, // Header HTTP
		Body:    nil,                 // Badan permintaan biasanya tidak diperlukan untuk permintaan GET.
		Bucket:  nil,                 // Operasi ini tidak menargetkan bucket tertentu.
	}

	// Jalankan operasi dan terima tanggapan atau kesalahan.
	res, err := client.InvokeOperation(context.TODO(), input)
	if err != nil {
		// Jika terjadi kesalahan, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("invoke operation got error: %v\n", err)
		os.Exit(1)
	}

	// Baca badan tanggapan.
	body, err := io.ReadAll(res.Body)
	if err != nil {
		// Jika terjadi kesalahan saat membaca badan tanggapan, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("gagal membaca badan tanggapan: %v\n", err)
		os.Exit(1)
	}

	// Tutup badan tanggapan untuk melepaskan sumber daya.
	if res.Body != nil {
		res.Body.Close()
	}

	// Cetak hasil operasi.
	fmt.Println("The result of GetResourcePoolPriorityQosConfiguration:", string(body))
}

Hapus konfigurasi QoS prioritas kolam sumber daya

package main

import (
	"bytes"
	"context"
	"crypto/md5"
	"encoding/base64"
	"fmt"
	"os"

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

func DeleteResourcePoolPriorityQosConfiguration() {
	// Tentukan wilayah tempat bucket berada. Misalnya, atur wilayah ke cn-hangzhou untuk China (Hangzhou).
	var region = "cn-hangzhou"

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

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

	// Definisikan nama kolam sumber daya.
	resourcePool := "hz-rp-01"

	// Baca konten file konfigurasi QoS prioritas.
	qosConf, err := os.ReadFile("priority-qos.xml")
	if err != nil {
		// Jika terjadi kesalahan saat membaca file konfigurasi QoS, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("gagal membaca qos.xml: %v\n", err)
		os.Exit(1)
	}

	// Hitung hash MD5 dari data masukan dan ubah menjadi string yang dikodekan Base64.
	calcMd5 := func(input []byte) string {
		if len(input) == 0 {
			return "1B2M2Y8AsgTpgAmY7PhCfg=="
		}
		h := md5.New()
		h.Write(input)
		return base64.StdEncoding.EncodeToString(h.Sum(nil))
	}

	// Buat parameter masukan untuk operasi, termasuk aksi, jenis metode, dan parameter.
	input := &oss.OperationInput{
		OpName: "DeleteResourcePoolPriorityQosConfiguration", // Action
		Method: "DELETE",                                     // Metode HTTP
		Parameters: map[string]string{
			"priorityQos":  "",           // Parameter terkait QoS prioritas.
			"resourcePool": resourcePool, // Nama kolam sumber daya
		},
		Headers: map[string]string{
			"Content-MD5": calcMd5(qosConf), // Atur header Content-MD5 untuk badan permintaan guna memastikan integritas data.
		},
		Body:   bytes.NewReader(qosConf), // Badan permintaan yang berisi konfigurasi QoS.
		Bucket: nil,                      // Operasi ini tidak menargetkan bucket tertentu.
	}

	// Jalankan operasi dan terima tanggapan atau kesalahan.
	res, err := client.InvokeOperation(context.TODO(), input)
	if err != nil {
		// Jika terjadi kesalahan, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("invoke operation got error: %v\n", err)
		os.Exit(1)
	}

	// Cetak hasil operasi.
	fmt.Println("The result of DeleteResourcePoolPriorityQosConfiguration:", res.Status)
}

Tetapkan konfigurasi QoS prioritas untuk perequest dalam kolam sumber daya

package main

import (
	"bytes"
	"context"
	"crypto/md5"
	"encoding/base64"
	"fmt"
	"os"

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

func PutResourcePoolRequesterPriorityQosConfiguration() {
	// Tentukan wilayah tempat bucket berada. Misalnya, atur wilayah ke cn-hangzhou untuk China (Hangzhou).
	var region = "cn-hangzhou"

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

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

	// Definisikan nama kolam sumber daya.
	resourcePool := "hz-rp-01"

	// Baca konten file konfigurasi QoS prioritas perequest.
	qosConf, err := os.ReadFile("requester-priority-qos.xml")
	if err != nil {
		// Jika terjadi kesalahan saat membaca file konfigurasi QoS, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("gagal membaca qos.xml: %v\n", err)
		os.Exit(1)
	}

	// Hitung hash MD5 dari data masukan dan ubah menjadi string yang dikodekan Base64.
	calcMd5 := func(input []byte) string {
		if len(input) == 0 {
			return "1B2M2Y8AsgTpgAmY7PhCfg=="
		}
		h := md5.New()
		h.Write(input)
		return base64.StdEncoding.EncodeToString(h.Sum(nil))
	}

	// Buat parameter masukan untuk operasi, termasuk aksi, jenis metode, dan parameter.
	input := &oss.OperationInput{
		OpName: "PutResourcePoolRequesterPriorityQoSConfiguration", // Action
		Method: "PUT",                                              // Metode HTTP
		Parameters: map[string]string{
			"requesterPriorityQos": "", // Parameter terkait QoS prioritas perequest.
			"resourcePool":         resourcePool, // Nama kolam sumber daya
		},
		Headers: map[string]string{
			"Content-MD5": calcMd5(qosConf), // Atur header Content-MD5 untuk badan permintaan guna memastikan integritas data.
		},
		Body:   bytes.NewReader(qosConf), // Badan permintaan yang berisi konfigurasi QoS.
		Bucket: nil,                      // Operasi ini tidak menargetkan bucket tertentu.
	}

	// Jalankan operasi dan terima tanggapan atau kesalahan.
	res, err := client.InvokeOperation(context.TODO(), input)
	if err != nil {
		// Jika terjadi kesalahan, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("invoke operation got error: %v\n", err)
		os.Exit(1)
	}

	// Cetak hasil operasi.
	fmt.Println("The result of PutResourcePoolRequesterPriorityQoSConfiguration:", res.Status)
}

Dapatkan konfigurasi QoS prioritas untuk perequest dalam kolam sumber daya

package main

import (
	"context"
	"fmt"
	"io"
	"os"

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

func GetResourcePoolRequesterPriorityQosConfiguration() {
	// Tentukan wilayah tempat bucket berada. Misalnya, atur wilayah ke cn-hangzhou untuk China (Hangzhou).
	var region = "cn-hangzhou"

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

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

	// Definisikan nama kolam sumber daya.
	resourcePool := "hz-rp-01"

	// Buat parameter masukan untuk operasi, termasuk aksi, jenis metode, dan parameter.
	input := &oss.OperationInput{
		OpName: "GetResourcePoolRequesterPriorityQoSConfiguration", // Action
		Method: "GET",                                              // Metode HTTP
		Parameters: map[string]string{
			"requesterPriorityQos": "", // Parameter terkait QoS prioritas perequest.
			"resourcePool":         resourcePool, // Nama kolam sumber daya
		},
		Headers: map[string]string{}, // Header HTTP
		Body:    nil,                 // Badan permintaan biasanya tidak diperlukan untuk permintaan GET.
		Bucket:  nil,                 // Operasi ini tidak menargetkan bucket tertentu.
	}

	// Jalankan operasi dan terima tanggapan atau kesalahan.
	res, err := client.InvokeOperation(context.TODO(), input)
	if err != nil {
		// Jika terjadi kesalahan, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("invoke operation got error: %v\n", err)
		os.Exit(1)
	}

	// Baca badan tanggapan.
	body, err := io.ReadAll(res.Body)
	if err != nil {
		// Jika terjadi kesalahan saat membaca badan tanggapan, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("gagal membaca badan tanggapan: %v\n", err)
		os.Exit(1)
	}

	// Tutup badan tanggapan untuk melepaskan sumber daya.
	if res.Body != nil {
		res.Body.Close()
	}

	// Cetak hasil operasi.
	fmt.Println("The result of GetResourcePoolRequesterPriorityQosConfiguration:", string(body))
}

Hapus konfigurasi QoS prioritas untuk perequest dalam kolam sumber daya

package main

import (
	"bytes"
	"context"
	"crypto/md5"
	"encoding/base64"
	"fmt"
	"os"

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

func DeleteResourcePoolRequesterPriorityQosConfiguration() {
	// Tentukan wilayah tempat bucket berada. Misalnya, atur wilayah ke cn-hangzhou untuk China (Hangzhou).
	var region = "cn-hangzhou"

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

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

	// Definisikan nama kolam sumber daya.
	resourcePool := "hz-rp-01"

	// Baca konten file konfigurasi QoS prioritas perequest.
	qosConf, err := os.ReadFile("priority-qos.xml")
	if err != nil {
		// Jika terjadi kesalahan saat membaca file konfigurasi QoS, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("gagal membaca qos.xml: %v\n", err)
		os.Exit(1)
	}

	// Hitung hash MD5 dari data masukan dan ubah menjadi string yang dikodekan Base64.
	calcMd5 := func(input []byte) string {
		if len(input) == 0 {
			return "1B2M2Y8AsgTpgAmY7PhCfg=="
		}
		h := md5.New()
		h.Write(input)
		return base64.StdEncoding.EncodeToString(h.Sum(nil))
	}

	// Buat parameter masukan untuk operasi, termasuk aksi, jenis metode, dan parameter.
	input := &oss.OperationInput{
		OpName: "DeleteResourcePoolRequesterPriorityQoSConfiguration", // Action
		Method: "DELETE",                                              // Metode HTTP
		Parameters: map[string]string{
			"requesterPriorityQos": "", // Parameter terkait QoS prioritas perequest.
			"resourcePool":         resourcePool, // Nama kolam sumber daya
		},
		Headers: map[string]string{
			"Content-MD5": calcMd5(qosConf), // Atur header Content-MD5 untuk badan permintaan guna memastikan integritas data.
		},
		Body:   bytes.NewReader(qosConf), // Badan permintaan yang berisi konfigurasi QoS.
		Bucket: nil,                      // Operasi ini tidak menargetkan bucket tertentu.
	}

	// Jalankan operasi dan terima tanggapan atau kesalahan.
	res, err := client.InvokeOperation(context.TODO(), input)
	if err != nil {
		// Jika terjadi kesalahan, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("invoke operation got error: %v\n", err)
		os.Exit(1)
	}

	// Cetak hasil operasi.
	fmt.Println("The result of DeleteResourcePoolRequesterPriorityQosConfiguration:", res.Status)
}

Manajemen bandwidth grup bucket

Tambahkan bucket dari kolam sumber daya ke grup bucket tertentu

package main

import (
	"context"
	"fmt"
	"io"
	"os"
	"strings"

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

// Fungsi PutBucketResourcePoolBucketGroup menambahkan bucket ke grup bucket tertentu dalam kolam sumber daya.
func PutBucketResourcePoolBucketGroup() {
	// Tentukan wilayah tempat bucket berada. Misalnya, atur wilayah ke cn-hangzhou untuk China (Hangzhou).
	var region = "cn-hangzhou"

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

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

	// Buat parameter masukan untuk operasi, termasuk aksi, jenis metode, dan parameter.
	input := &oss.OperationInput{
		OpName: "PutBucketResourcePoolBucketGroup", // Action
		Method: "PUT",                              // Metode HTTP
		Parameters: map[string]string{ // Daftar parameter
			"resourcePoolBucketGroup": "example-group",           // Nama grup bucket kolam sumber daya
			"resourcePool":            "example-resource-pool", // Nama kolam sumber daya
		},
		Headers: map[string]string{},    // Header HTTP
		Body:    nil,                    // Badan permintaan
		Bucket:  oss.Ptr("test-bucket"), // Nama bucket
	}

	// Jalankan operasi dan terima tanggapan atau kesalahan.
	res, err := client.InvokeOperation(context.TODO(), input)
	if err != nil {
		// Jika terjadi kesalahan, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("invoke operation got error: %v\n", err)
		os.Exit(1)
	}

	var body []byte
	if b, ok := res.Body.(io.Reader); ok {
		buf := new(strings.Builder)
		_, _ = io.Copy(buf, b)
		body = []byte(buf.String())
	} else {
		body = []byte(fmt.Sprintf("%v", res.Body))
	}

	// Cetak hasil operasi.
	fmt.Println("The result of PutBucketResourcePoolBucketGroup:", string(body))
}

Dapatkan daftar grup bucket dalam kolam sumber daya tertentu

package main

import (
	"context"
	"fmt"
	"io"
	"os"

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

// Fungsi ListResourcePoolBucketGroups mencantumkan grup bucket dalam kolam sumber daya tertentu.
func ListResourcePoolBucketGroups() {
	// Definisikan wilayah. Contoh ini menggunakan "cn-hangzhou".
	var region = "cn-hangzhou"

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

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

	// Buat parameter masukan untuk operasi, termasuk aksi, jenis metode, dan parameter.
	input := &oss.OperationInput{
		OpName: "ListResourcePoolBucketGroups", // Action
		Method: "GET",                          // Metode HTTP
		Parameters: map[string]string{ // Daftar parameter
			"resourcePool": "example-resource-pool", // Nama kolam sumber daya
		},
		Headers: map[string]string{}, // Header HTTP
		Body:    nil,                 // Badan permintaan
		Bucket:  nil,                 // Nama bucket kosong karena operasi ini tidak menargetkan bucket tertentu.
	}

	// Jalankan operasi dan terima tanggapan atau kesalahan.
	res, err := client.InvokeOperation(context.TODO(), input)
	if err != nil {
		// Jika terjadi kesalahan, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("invoke operation got error: %v\n", err)
		os.Exit(1)
	}

	// Baca badan tanggapan.
	body, err := io.ReadAll(res.Body)
	if err != nil {
		// Jika terjadi kesalahan saat membaca badan tanggapan, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("gagal membaca badan tanggapan: %v\n", err)
		os.Exit(1)
	}

	// Tutup badan tanggapan untuk melepaskan sumber daya.
	if res.Body != nil {
		res.Body.Close()
	}

	// Cetak hasil operasi.
	fmt.Println("The result of ListResourcePoolBucketGroups:", string(body))
}

Modifikasi konfigurasi throttling grup bucket dalam kolam sumber daya

package main

import (
	"bytes"
	"context"
	"crypto/md5"
	"encoding/base64"
	"fmt"
	"os"

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

func PutResourcePoolBucketGroupQosInfo() {
	// Tentukan wilayah tempat bucket berada. Misalnya, atur wilayah ke cn-hangzhou untuk China (Hangzhou).
	var region = "cn-hangzhou"

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

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

	// Definisikan nama kolam sumber daya dan nama grup bucket.
	resourcePool := "example-resource-pool"
	group := "example-group"

	// Baca konten file konfigurasi QoS.
	qosConf, err := os.ReadFile("qos.xml")
	if err != nil {
		// Jika terjadi kesalahan saat membaca file konfigurasi QoS, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("gagal membaca qos.xml: %v\n", err)
		os.Exit(1)
	}

	// Hitung hash MD5 dari data masukan dan ubah menjadi string yang dikodekan Base64.
	calcMd5 := func(input []byte) string {
		if len(input) == 0 {
			return "1B2M2Y8AsgTpgAmY7PhCfg=="
		}
		h := md5.New()
		h.Write(input)
		return base64.StdEncoding.EncodeToString(h.Sum(nil))
	}

	// Buat parameter masukan untuk operasi, termasuk aksi, jenis metode, dan parameter.
	input := &oss.OperationInput{
		OpName: "PutResourcePoolBucketGroupQoSInfo", // Action
		Method: "PUT",                               // Metode HTTP
		Parameters: map[string]string{ // Daftar parameter
			"resourcePool":                   resourcePool, // Nama kolam sumber daya
			"resourcePoolBucketGroup":        group,        // Nama grup bucket
			"resourcePoolBucketGroupQosInfo": "",           // Parameter terkait QoS
		},
		Headers: map[string]string{ // Header HTTP
			"Content-MD5": calcMd5(qosConf), // Atur header Content-MD5 untuk badan permintaan guna memastikan integritas data.
		},
		Body:   bytes.NewReader(qosConf), // Badan permintaan yang berisi konfigurasi QoS.
		Bucket: nil,                      // Nama bucket kosong karena operasi ini tidak menargetkan bucket tertentu.
	}

	// Jalankan operasi dan terima tanggapan atau kesalahan.
	res, err := client.InvokeOperation(context.TODO(), input)
	if err != nil {
		// Jika terjadi kesalahan, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("invoke operation got error: %v\n", err)
		os.Exit(1)
	}

	// Cetak hasil operasi.
	fmt.Println("The result of PutResourcePoolBucketGroupQoSInfo:", res.Status)
}

Dapatkan konfigurasi throttling grup bucket dalam kolam sumber daya

package main

import (
	"context"
	"fmt"
	"io"
	"os"

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

// Fungsi GetResourcePoolBucketGroupQosInfo mendapatkan informasi QoS grup bucket tertentu dalam kolam sumber daya.
func GetResourcePoolBucketGroupQosInfo() {
	// Tentukan wilayah tempat bucket berada. Misalnya, atur wilayah ke cn-hangzhou untuk China (Hangzhou).
	var region = "cn-hangzhou"

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

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

	// Definisikan nama kolam sumber daya dan nama grup bucket.
	resourcePool := "example-resource-pool"
	ResourcePoolBucketGroup := "example-group"

	// Buat parameter masukan untuk operasi, termasuk aksi, jenis metode, dan parameter.
	input := &oss.OperationInput{
		OpName: "GetResourcePoolBucketGroupQoSInfo", // Action
		Method: "GET",                               // Metode HTTP
		Parameters: map[string]string{ // Daftar parameter
			"resourcePool":                   resourcePool,            // Nama kolam sumber daya
			"resourcePoolBucketGroup":        ResourcePoolBucketGroup, // Nama grup bucket
			"resourcePoolBucketGroupQoSInfo": "",                      // Parameter terkait QoS
		},
		Headers: map[string]string{}, // Header HTTP
		Body:    nil,                 // Badan permintaan biasanya kosong untuk permintaan GET.
		Bucket:  nil,                 // Nama bucket kosong karena operasi ini tidak menargetkan bucket tertentu.
	}

	// Jalankan operasi dan terima tanggapan atau kesalahan.
	res, err := client.InvokeOperation(context.TODO(), input)
	if err != nil {
		// Jika terjadi kesalahan, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("invoke operation got error: %v\n", err)
		os.Exit(1)
	}

	// Baca badan tanggapan.
	body, err := io.ReadAll(res.Body)
	if err != nil {
		// Jika terjadi kesalahan saat membaca badan tanggapan, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("gagal membaca badan tanggapan: %v\n", err)
		os.Exit(1)
	}

	// Tutup badan tanggapan untuk melepaskan sumber daya.
	if res.Body != nil {
		res.Body.Close()
	}

	// Cetak hasil operasi.
	fmt.Println("The result of GetResourcePoolBucketGroupQoSInfo:", string(body))
}

Daftar konfigurasi pembatasan grup bucket dalam kolam sumber daya

package main

import (
	"context"
	"fmt"
	"io"
	"os"

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

// Fungsi ListResourcePoolBucketGroupQosInfos mencantumkan informasi QoS semua grup bucket dalam kolam sumber daya tertentu.
func ListResourcePoolBucketGroupQosInfos() {
	// Tentukan wilayah tempat bucket berada. Misalnya, atur wilayah ke cn-hangzhou untuk China (Hangzhou).
	var region = "cn-hangzhou"

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

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

	// Definisikan nama kolam sumber daya.
	resourcePool := "example-resource-pool"

	// Buat parameter masukan untuk operasi, termasuk aksi, jenis metode, dan parameter.
	input := &oss.OperationInput{
		OpName: "ListResourcePoolBucketGroupQoSInfos", // Action
		Method: "GET",                                 // Metode HTTP
		Parameters: map[string]string{ // Daftar parameter
			"resourcePool": resourcePool, // Nama kolam sumber daya
			// Parameter opsional:
			// "continuation-token": "25987311111111xxxx", // Token kelanjutan untuk penomoran halaman.
			// "max-keys":           "1",                  // Jumlah maksimum entri yang akan dikembalikan.
		},
		Headers: map[string]string{}, // Header HTTP
		Body:    nil,                 // Badan permintaan biasanya kosong untuk permintaan GET.
		Bucket:  nil,                 // Nama bucket kosong karena operasi ini tidak menargetkan bucket tertentu.
	}

	// Jalankan operasi dan terima tanggapan atau kesalahan.
	res, err := client.InvokeOperation(context.TODO(), input)
	if err != nil {
		// Jika terjadi kesalahan, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("invoke operation got error: %v\n", err)
		os.Exit(1)
	}

	// Baca badan tanggapan.
	body, err := io.ReadAll(res.Body)
	if err != nil {
		// Jika terjadi kesalahan saat membaca badan tanggapan, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("gagal membaca badan tanggapan: %v\n", err)
		os.Exit(1)
	}

	// Tutup badan tanggapan untuk melepaskan sumber daya.
	if res.Body != nil {
		res.Body.Close()
	}

	// Cetak hasil operasi.
	fmt.Println("The result of ListResourcePoolBucketGroupQoSInfos:", string(body))
}

Hapus konfigurasi throttling grup bucket dalam kolam sumber daya

package main

import (
	"context"
	"fmt"
	"os"

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

// Fungsi DeleteResourcePoolBucketGroupQosInfo menghapus informasi QoS grup bucket tertentu dalam kolam sumber daya.
func DeleteResourcePoolBucketGroupQosInfo() {
	// Definisikan wilayah. Contoh ini menggunakan "cn-hangzhou".
	var region = "cn-hangzhou"

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

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

	// Definisikan nama kolam sumber daya dan nama grup bucket.
	resourcePool := "example-resource-pool"
	group := "example-group"

	// Buat parameter masukan untuk operasi, termasuk aksi, jenis metode, dan parameter.
	input := &oss.OperationInput{
		OpName: "DeleteResourcePoolBucketGroupQoSInfo", // Action
		Method: "DELETE",                               // Metode HTTP
		Parameters: map[string]string{ // Daftar parameter
			"resourcePool":                   resourcePool, // Nama kolam sumber daya
			"resourcePoolBucketGroup":        group,        // Nama grup bucket
			"resourcePoolBucketGroupQoSInfo": "",           // Parameter terkait QoS
		},
		Headers: map[string]string{}, // Header HTTP
		Body:    nil,                 // Badan permintaan biasanya kosong untuk permintaan DELETE.
		Bucket:  nil,                 // Nama bucket kosong karena operasi ini tidak menargetkan bucket tertentu.
	}

	// Jalankan operasi dan terima tanggapan atau kesalahan.
	res, err := client.InvokeOperation(context.TODO(), input)
	if err != nil {
		// Jika terjadi kesalahan, cetak pesan kesalahan dan keluar dari program.
		fmt.Printf("invoke operation got error: %v\n", err)
		os.Exit(1)
	}

	// Cetak hasil operasi.
	fmt.Println("The result of DeleteResourcePoolBucketGroupQoSInfo:", res.Status)
}

Referensi