すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:転送アクセラレーション (Go SDK V2)

最終更新日:Nov 09, 2025

転送アクセラレーション機能を使用すると、世界中のユーザーが Object Storage Service (OSS) バケットに保存されているオブジェクトに短時間でアクセスできます。 この機能は、地理的に長い距離にわたってデータを転送する必要があるシナリオに適用でき、ギガバイトまたはテラバイト単位のラージオブジェクトのダウンロードまたはアップロードにも使用できます。

注意事項

  • このトピックのサンプルコードでは、中国 (杭州) リージョン ID cn-hangzhou を例として使用します。デフォルトでは、パブリックエンドポイントが使用されます。同じリージョン内の他の Alibaba Cloud サービスから OSS にアクセスする場合は、内部エンドポイントを使用する必要があります。OSS リージョンとエンドポイントのマッピングの詳細については、「OSS リージョンとエンドポイント」をご参照ください。

  • このトピックでは、アクセス認証情報は環境変数から取得されます。 アクセス認証情報の構成方法の詳細については、「アクセス認証情報を構成する」をご参照ください。

サンプルコード

転送アクセラレーションを有効にする

以下は、バケットの転送アクセラレーションを有効にするコード例です。

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

// グローバル変数を定義します。
var (
	region     string // バケットが配置されているリージョン。
	bucketName string // バケットの名前。
)

// コマンドラインパラメータを初期化するために使用される init 関数を指定します。
func init() {
	flag.StringVar(&region, "region", "", "バケットが配置されているリージョン。")
	flag.StringVar(&bucketName, "bucket", "", "バケットの名前。")
}

func main() {
	// コマンドラインパラメータを解析します。
	flag.Parse()

	// バケットの名前が指定されているかどうかを確認します。
	if len(bucketName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("無効なパラメータ、バケット名が必要です")
	}

	// リージョンが指定されているかどうかを確認します。
	if len(region) == 0 {
		flag.PrintDefaults()
		log.Fatalf("無効なパラメータ、リージョンが必要です")
	}

	// デフォルトの構成を読み込み、認証情報プロバイダーとリージョンを指定します。
	cfg := oss.LoadDefaultConfig().
		WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
		WithRegion(region)

	// OSS クライアントを作成します。
	client := oss.NewClient(cfg)

	// バケットの転送アクセラレーションを有効にするリクエストを作成します。
	request := &oss.PutBucketTransferAccelerationRequest{
		Bucket: oss.Ptr(bucketName), // バケットの名前。
		TransferAccelerationConfiguration: &oss.TransferAccelerationConfiguration{
			Enabled: oss.Ptr(true), // 転送アクセラレーションを有効にします。
		},
	}

	// リクエストを実行して、転送アクセラレーションを有効にします。
	result, err := client.PutBucketTransferAcceleration(context.TODO(), request)
	if err != nil {
		log.Fatalf("バケット転送アクセラレーションの設定に失敗しました %v", err)
	}

	// 結果を表示します。
	log.Printf("バケット転送アクセラレーションの設定結果:%#v\n", result)
}

転送アクセラレーションのステータスを照会する

以下は、バケットの転送アクセラレーションステータスを照会するコード例です。

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

// グローバル変数を定義します。
var (
	region     string // バケットが配置されているリージョン。
	bucketName string // バケットの名前。
)

// コマンドラインパラメータを初期化するために使用される init 関数を指定します。
func init() {
	flag.StringVar(&region, "region", "", "バケットが配置されているリージョン。")
	flag.StringVar(&bucketName, "bucket", "", "バケットの名前。")
}

func main() {
	// コマンドラインパラメータを解析します。
	flag.Parse()

	// バケットの名前が指定されているかどうかを確認します。
	if len(bucketName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("無効なパラメータ、バケット名が必要です")
	}

	// リージョンが指定されているかどうかを確認します。
	if len(region) == 0 {
		flag.PrintDefaults()
		log.Fatalf("無効なパラメータ、リージョンが必要です")
	}

	// デフォルトの構成を読み込み、認証情報プロバイダーとリージョンを指定します。
	cfg := oss.LoadDefaultConfig().
		WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
		WithRegion(region)

	// OSS クライアントを作成します。
	client := oss.NewClient(cfg)

	// バケットの転送アクセラレーションのステータスを照会するリクエストを作成します。
	request := &oss.GetBucketTransferAccelerationRequest{
		Bucket: oss.Ptr(bucketName), // バケットの名前
	}

	// クエリ操作を実行します。
	result, err := client.GetBucketTransferAcceleration(context.TODO(), request)
	if err != nil {
		log.Fatalf("バケット転送アクセラレーションの取得に失敗しました %v", err)
	}

	// バケットの転送アクセラレーションステータスを表示します。
	log.Printf("バケット転送アクセラレーションの取得結果:%#v\n", result.TransferAccelerationConfiguration.Enabled)
}

関連情報

  • バケットの転送アクセラレーションを有効にするために使用される完全なサンプルコードについては、put_bucket_transfer_acceleration.goget_bucket_transfer_acceleration.go をご覧ください。

  • バケットの転送アクセラレーションを有効にするために呼び出すことができる API 操作の詳細については、「PutBucketTransferAcceleration」をご参照ください。

  • 転送アクセラレーションのステータスを照会するために呼び出すことができる API 操作の詳細については、「GetBucketTransferAcceleration」をご参照ください。