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

Object Storage Service:Go バケットタグ付け

最終更新日:Nov 09, 2025

このトピックでは、バケットのタグを管理する方法について説明します。

使用上の注意

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

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

方法

バケットのタグを構成する

func (c *Client) PutBucketTags(ctx context.Context, request *PutBucketTagsRequest, optFns ...func(*Options)) (*PutBucketTagsResult, error)

バケットのタグを照会する

func (c *Client) GetBucketTags(ctx context.Context, request *GetBucketTagsRequest, optFns ...func(*Options)) (*GetBucketTagsResult, error)

バケットのタグを削除する

func (c *Client) DeleteBucketTags(ctx context.Context, request *DeleteBucketTagsRequest, optFns ...func(*Options)) (*DeleteBucketTagsResult, error)

リクエストパラメーター

パラメーター

タイプ

説明

ctx

context.Context

リクエストのコンテキスト。リクエストの合計期間を指定するために使用できます。

request

*PutBucketTagsRequest

特定の API 操作のパラメーターを指定します。詳細については、PutBucketTagsRequest をご参照ください。

*GetBucketTagsRequest

特定の API 操作のパラメーターを指定します。詳細については、GetBucketTagsRequest をご参照ください。

*DeleteBucketTagsRequest

特定の API 操作のパラメーターを指定します。詳細については、DeleteBucketTagsRequest をご参照ください。

optFns

...func(*Options)

オプション。操作レベルのパラメーターです。詳細については、Options をご参照ください。

レスポンスパラメーター

パラメーター

タイプ

説明

result

*PutBucketTagsResult

操作に対するレスポンス。このパラメーターは、err の値が nil の場合に有効です。詳細については、PutBucketTagsResult をご参照ください。

*GetBucketTagsRequest

操作に対するレスポンス。このパラメーターは、err の値が nil の場合に有効です。詳細については、GetBucketTagsResult をご参照ください。

*DeleteBucketTagsRequest

操作に対するレスポンス。このパラメーターは、err の値が nil の場合に有効です。詳細については、DeleteBucketTagsResult をご参照ください。

err

error

リクエストのステータス。リクエストが失敗した場合、err の値は nil ではありません。

バケットのタグを構成する

次のコードは、バケットのタグを構成する方法の例を示しています。

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)

	// OSSClient インスタンスを作成します。
	client := oss.NewClient(cfg)

	// バケットのタグを構成するリクエストを作成します。
	request := &oss.PutBucketTagsRequest{
		Bucket: oss.Ptr(bucketName), // バケットの名前。
		Tagging: &oss.Tagging{
			&oss.TagSet{
				[]oss.Tag{
					{
						Key:   oss.Ptr("k1"), // タグのキー。
						Value: oss.Ptr("v1"), // タグの値。
					},
					{
						Key:   oss.Ptr("k2"), // タグのキー。
						Value: oss.Ptr("v2"), // タグの値。
					},
					{
						Key:   oss.Ptr("k3"), // タグのキー。
						Value: oss.Ptr("v3"), // タグの値。
					},
				},
			},
		},
	}

	// バケットのタグを構成するリクエストを送信します。
	result, err := client.PutBucketTags(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)

	// OSSClient インスタンスを作成します。
	client := oss.NewClient(cfg)

	// バケットのタグを照会するリクエストを作成します。
	request := &oss.GetBucketTagsRequest{
		Bucket: oss.Ptr(bucketName), // バケットの名前。
	}

	// バケットのタグを照会するリクエストを実行し、結果を処理します。
	getResult, err := client.GetBucketTags(context.TODO(), request)
	if err != nil {
		log.Fatalf("バケットタグの取得に失敗しました %v", err)
	}

	// バケットタグの数を表示します。
	log.Printf("バケットタグの取得結果: %#v\n", len(getResult.Tagging.TagSet.Tags))
}

バケットのタグを削除する

バケットの単一タグを削除する

次のコードは、バケットの k1 タグを削除する方法の例を示しています。

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)

	// OSSClient インスタンスを作成します。
	client := oss.NewClient(cfg)

	// バケットのタグを削除するリクエストを作成します。
	request := &oss.DeleteBucketTagsRequest{
		Bucket: oss.Ptr(bucketName), // バケットの名前。
		Tagging: oss.Ptr("k1"),      // 削除するタグのキー。
	}

	// バケットのタグを削除するリクエストを実行し、結果を処理します。
	result, err := client.DeleteBucketTags(context.TODO(), request)
	if err != nil {
		log.Fatalf("バケットタグの削除に失敗しました %v", err)
	}

	// タグ削除の結果を表示します。
	log.Printf("バケットタグの削除結果: %#v\n", result)
}

バケットの複数タグを削除する

次のコードは、バケットの k1 タグと k2 タグを削除する方法の例を示しています。

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)

	// OSSClient インスタンスを作成します。
	client := oss.NewClient(cfg)

	// バケットの 2 つのタグを削除するリクエストを作成します。
	request := &oss.DeleteBucketTagsRequest{
		Bucket: oss.Ptr(bucketName), // バケットの名前。
		Tagging: oss.Ptr("k1,k2"),  // 削除するタグのキー (カンマ区切り)。
	}

	// バケットのタグを削除するリクエストを実行し、結果を処理します。
	result, err := client.DeleteBucketTags(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)

	// OSSClient インスタンスを作成します。
	client := oss.NewClient(cfg)

	// バケットのすべてのタグを削除するリクエストを作成します。
	request := &oss.DeleteBucketTagsRequest{
		Bucket: oss.Ptr(bucketName), // バケットの名前。
	}

	// バケットのすべてのタグを削除するリクエストを実行し、結果を処理します。
	result, err := client.DeleteBucketTags(context.TODO(), request)
	if err != nil {
		log.Fatalf("バケットタグの削除に失敗しました %v", err)
	}

	// タグ削除の結果を表示します。
	log.Printf("バケットタグの削除結果: %#v\n", result)
}

関連情報

  • バケットのタグを構成するために呼び出すことができる API 操作の詳細については、PutBucketTags をご参照ください。

  • バケットのタグを照会するために呼び出すことができる API 操作の詳細については、GetBucketTags をご参照ください。

  • バケットのタグを削除するために呼び出すことができる API 操作の詳細については、DeleteBucketTags をご参照ください。