全部产品
Search
文档中心

Object Storage Service:Akselerasi transfer (Go SDK V2)

更新时间:Nov 09, 2025

Fitur percepatan transfer memungkinkan pengguna di seluruh dunia mengakses objek yang disimpan dalam bucket Object Storage Service (OSS) dalam waktu singkat. Fitur ini cocok untuk skenario di mana data ditransfer melalui jarak geografis yang jauh, serta untuk mengunduh atau mengunggah objek besar berukuran gigabyte hingga terabyte.

Catatan

  • Kode contoh dalam topik ini menggunakan ID Wilayah China (Hangzhou) cn-hangzhou sebagai contoh. Secara default, Titik akhir publik digunakan. Jika Anda ingin mengakses OSS dari layanan Alibaba Cloud lainnya di wilayah yang sama, gunakan Titik akhir internal. Untuk informasi lebih lanjut tentang pemetaan antara Wilayah OSS dan titik akhir, lihat Wilayah dan Titik Akhir OSS.

  • Dalam topik ini, kredensial akses diperoleh dari variabel lingkungan. Untuk informasi lebih lanjut tentang cara mengonfigurasi kredensial akses, lihat Konfigurasikan Kredensial Akses.

Kode contoh

Aktifkan percepatan transfer

Berikut adalah contoh kode untuk mengaktifkan percepatan transfer pada bucket.

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"
)

// Tentukan 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()

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

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

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

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

	// Buat permintaan untuk mengaktifkan percepatan transfer untuk bucket.
	request := &oss.PutBucketTransferAccelerationRequest{
		Bucket: oss.Ptr(bucketName), // Nama bucket.
		TransferAccelerationConfiguration: &oss.TransferAccelerationConfiguration{
			Enabled: oss.Ptr(true), // Aktifkan percepatan transfer.
		},
	}

	// Jalankan permintaan untuk mengaktifkan percepatan transfer.
	result, err := client.PutBucketTransferAcceleration(context.TODO(), request)
	if err != nil {
		log.Fatalf("gagal menempatkan percepatan transfer bucket %v", err)
	}

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

Kueri status percepatan transfer

Berikut adalah contoh kode untuk menanyakan status percepatan transfer bucket.

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"
)

// Tentukan 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()

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

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

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

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

	// Buat permintaan kueri untuk status percepatan transfer bucket.
	request := &oss.GetBucketTransferAccelerationRequest{
		Bucket: oss.Ptr(bucketName), // Nama bucket
	}

	// Lakukan operasi kueri.
	result, err := client.GetBucketTransferAcceleration(context.TODO(), request)
	if err != nil {
		log.Fatalf("gagal mendapatkan percepatan transfer bucket %v", err)
	}

	// Tampilkan status percepatan transfer bucket.
	log.Printf("hasil percepatan transfer bucket:%#v\n", result.TransferAccelerationConfiguration.Enabled)
}

Referensi