All Products
Search
Document Center

Object Storage Service:Kategorikan dan kelola bucket dengan tag bucket

Last Updated:May 07, 2026

Gunakan tag bucket untuk mengkategorikan dan mengelola bucket. Misalnya, Anda dapat menggunakan tag berbeda untuk mengidentifikasi bucket yang digunakan untuk tujuan berbeda atau mengonfigurasi kontrol akses untuk bucket dengan tag tertentu.

Batasan

  • Setiap bucket dapat memiliki hingga 20 tag (pasangan kunci-nilai).

  • Kunci dan nilai tag harus dikodekan dalam UTF-8.

  • Kunci tag dapat memiliki panjang hingga 64 karakter, bersifat case-sensitive, dan tidak boleh kosong. Kunci tersebut tidak boleh diawali dengan http://, https://, atau Aliyun (tidak case-sensitive).

  • Nilai tag dapat memiliki panjang hingga 128 karakter dan boleh berupa string kosong.

Prosedur

Konsol OSS

  1. Masuk ke Konsol OSS.

  2. Di panel navigasi sebelah kiri, klik Buckets. Pada halaman yang muncul, klik nama bucket yang dituju.

  3. Di panel navigasi sebelah kiri, pilih Bucket Settings > Bucket Tagging.

  4. Pada halaman Bucket Tagging, klik Create Tag.

  5. Klik + Tag, lalu masukkan kunci dan nilai untuk tag tersebut atau pilih tag yang sudah ada.

    Untuk menambahkan beberapa tag, klik + Tag.

  6. Klik Save.

Alibaba Cloud SDKs

Kode berikut menunjukkan cara mengatur tag bucket menggunakan Alibaba Cloud SDK umum. Untuk contoh kode yang menggunakan SDK lainnya, lihat Ikhtisar SDK.

import com.aliyun.oss.*;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.common.comm.SignVersion;
import com.aliyun.oss.model.SetBucketTaggingRequest;

public class Demo {

    public static void main(String[] args) throws Exception {
        // Dalam contoh ini, titik akhir wilayah China (Hangzhou) digunakan. Tentukan titik akhir aktual Anda. 
        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
        // Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. 
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // Tentukan nama bucket. Contoh: examplebucket. 
        String bucketName = "examplebucket";
        // Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah menjadi cn-hangzhou.
        String region = "cn-hangzhou";
        
        // Buat instans OSSClient.
        // Panggil metode shutdown untuk melepaskan sumber daya ketika OSSClient tidak lagi digunakan. 
        ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
        clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);        
        OSS ossClient = OSSClientBuilder.create()
        .endpoint(endpoint)
        .credentialsProvider(credentialsProvider)
        .clientConfiguration(clientBuilderConfiguration)
        .region(region)               
        .build();

        try {
            // Konfigurasikan tag untuk bucket. 
            SetBucketTaggingRequest request = new SetBucketTaggingRequest(bucketName);
            // Tentukan kunci dan nilai tag. Misalnya, atur kunci menjadi owner dan nilai menjadi John. 
            request.setTag("owner", "John");
            request.setTag("location", "hangzhou");
            ossClient.setBucketTagging(request);
        } catch (OSSException oe) {
            System.out.println("Terjadi OSSException, artinya permintaan Anda sampai ke OSS, "
                    + "tetapi ditolak dengan tanggapan kesalahan karena suatu alasan.");
            System.out.println("Pesan Kesalahan:" + oe.getErrorMessage());
            System.out.println("Kode Kesalahan:" + oe.getErrorCode());
            System.out.println("ID Permintaan:" + oe.getRequestId());
            System.out.println("Host ID:" + oe.getHostId());
        } catch (ClientException ce) {
            System.out.println("Terjadi ClientException, artinya klien mengalami "
                    + "masalah internal serius saat mencoba berkomunikasi dengan OSS, "
                    + "seperti tidak dapat mengakses jaringan.");
            System.out.println("Pesan Kesalahan:" + ce.getMessage());
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
    }
}
const OSS = require('ali-oss')

const client = new OSS({
  // Atur region ke wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur region menjadi oss-cn-hangzhou.
  region: 'yourregion',
  // Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // Atur bucket ke nama bucket Anda.
  bucket: 'yourBucketName',
});

// Atur tag bucket.
async function putBucketTags(bucketName, tag) {
  try {
    const result = await client.putBucketTags(bucketName, tag);
    console.log(result);
  } catch (e) {
    console.log(e);
  }
}

const tag = { a: '1', b: '2' };
putBucketTags('yourBucketName', tag)
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() {
	// Uraikan parameter baris perintah.
	flag.Parse()

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

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

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

	// Buat instans OSSClient.
	client := oss.NewClient(cfg)

	// Buat permintaan untuk mengonfigurasi tag untuk bucket.
	request := &oss.PutBucketTagsRequest{
		Bucket: oss.Ptr(bucketName), // Nama bucket.
		Tagging: &oss.Tagging{
			&oss.TagSet{
				[]oss.Tag{
					{
						Key:   oss.Ptr("k1"), // Kunci tag.
						Value: oss.Ptr("v1"), // Nilai tag.
					},
					{
						Key:   oss.Ptr("k2"), // Kunci tag.
						Value: oss.Ptr("v2"), // Nilai tag.
					},
					{
						Key:   oss.Ptr("k3"), // Kunci tag.
						Value: oss.Ptr("v3"), // Nilai tag.
					},
				},
			},
		},
	}

	// Kirim permintaan untuk mengonfigurasi tag untuk bucket.
	result, err := client.PutBucketTags(context.TODO(), request)
	if err != nil {
		log.Fatalf("gagal mengatur tag bucket %v", err)
	}

	// Tampilkan hasil konfigurasi tag.
	log.Printf("hasil pengaturan tag bucket:%#v\n", result)
}
using Aliyun.OSS;
using Aliyun.OSS.Common;

// Tentukan titik akhir wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur titik akhir menjadi https://oss-cn-hangzhou.aliyuncs.com. 
var endpoint = "yourEndpoint";
// Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. 
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// Tentukan nama bucket. Contoh: examplebucket. 
var bucketName = "examplebucket";
// Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah menjadi cn-hangzhou.
const string region = "cn-hangzhou";
            
// Buat instans ClientConfiguration dan ubah parameter sesuai kebutuhan.
var conf = new ClientConfiguration();
            
// Gunakan algoritma signature V4.
 conf.SignatureVersion = SignatureVersion.V4;
            
// Buat instans OssClient.
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
c.SetRegion(region);
try
{
    // Konfigurasikan tag untuk bucket. 
    var setRequest = new SetBucketTaggingRequest(bucketName);

    var tag1 = new Tag
    {
        Key = "project",
        Value = "projectone"
    };

    var tag2 = new Tag
    {
        Key = "user",
        Value = "jsmith"
    };

    setRequest.AddTag(tag1);
    setRequest.AddTag(tag2);    
    client.SetBucketTagging(setRequest);
    Console.WriteLine("Pengaturan tagging bucket:{0} berhasil ", bucketName);
}
catch (OssException ex)
{
    Console.WriteLine("Gagal dengan kode kesalahan: {0}; Info kesalahan: {1}. \nID Permintaan:{2}\tHostID:{3}",
        ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId);
}
catch (Exception ex)
{
    Console.WriteLine("Gagal dengan info kesalahan: {0}", ex.Message);
}
#include <alibabacloud/oss/OssClient.h>
using namespace AlibabaCloud::OSS;

int main(void)
{
    /* Inisialisasi informasi akun OSS. */
    
    /* Atur yourEndpoint ke Endpoint wilayah bucket. Misalnya, untuk wilayah China (Hangzhou), atur Endpoint menjadi https://oss-cn-hangzhou.aliyuncs.com. */
    std::string Endpoint = "yourEndpoint";
    
    /* Atur yourRegion ke wilayah tempat bucket berada. Misalnya, untuk wilayah China (Hangzhou), atur wilayah menjadi cn-hangzhou. */
    std::string Region = "yourRegion";
    
    /* Tentukan nama bucket, misalnya examplebucket. */
    std::string BucketName = "examplebucket";

    /* Inisialisasi sumber daya jaringan. */
    InitializeSdk();

    ClientConfiguration conf;
    conf.signatureVersion = SignatureVersionType::V4;
    /* 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. */
    auto credentialsProvider = std::make_shared<EnvironmentVariableCredentialsProvider>();
    OssClient client(Endpoint, credentialsProvider, conf);
    client.SetRegion(Region);

    /* Atur tag bucket. */
    SetBucketTaggingRequest request(BucketName);
    Tag tag1("yourTagkey1","yourTagValue1");
    Tag tag2("yourTagkey2", "yourTagValue2");
    TagSet tagset;
    tagset.push_back(tag1);
    tagset.push_back(tag2);
    Tagging taging;
    taging.setTags(tagset);
    request.setTagging(taging);
    auto outcome = client.SetBucketTagging(request);

    if (outcome.isSuccess()) {      
            std::cout << " SetBucketTagging berhasil " << std::endl;
    }
    else {
        /* Tangani pengecualian. */
        std::cout << "SetBucketTagging gagal" <<
        ",kode:" << outcome.error().Code() <<
        ",pesan:" << outcome.error().Message() <<
        ",requestId:" << outcome.error().RequestId() << std::endl;
        return -1;
    }

    /* Lepaskan sumber daya jaringan. */
    ShutdownSdk();
    return 0;
}
import argparse
import alibabacloud_oss_v2 as oss

# Buat parser parameter baris perintah untuk mengurai parameter dari baris perintah.
parser = argparse.ArgumentParser(description="contoh pengaturan tag bucket")

# (Wajib) Tentukan parameter region, yang menentukan wilayah tempat bucket berada. 
parser.add_argument('--region', help='Wilayah tempat bucket berada.', required=True)

# (Wajib) Tentukan parameter --bucket, yang menentukan nama bucket.
parser.add_argument('--bucket', help='Nama bucket.', required=True)

# (Opsional) Tentukan parameter --endpoint, yang menentukan titik akhir yang dapat digunakan layanan lain untuk mengakses OSS.
parser.add_argument('--endpoint', help='Nama domain yang dapat digunakan layanan lain untuk mengakses OSS')

def main():
    # Uraikan parameter baris perintah.
    args = parser.parse_args()

    # Muat kredensial akses (ID AccessKey dan Rahasia AccessKey) dari variabel lingkungan.
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()

    # Muat konfigurasi default SDK.
    cfg = oss.config.load_default()

    # Tentukan penyedia kredensial.
    cfg.credentials_provider = credentials_provider

    # Tentukan wilayah tempat bucket berada.
    cfg.region = args.region

    # Jika titik akhir kustom disediakan, perbarui atribut endpoint dengan titik akhir yang diberikan.
    if args.endpoint is not None:
        cfg.endpoint = args.endpoint

    # Gunakan konfigurasi di atas untuk menginisialisasi instans OSSClient.
    client = oss.Client(cfg)

    # Panggil metode put_bucket_tags untuk mengonfigurasi tag untuk bucket.
    result = client.put_bucket_tags(
        oss.PutBucketTagsRequest(
            bucket=args.bucket,  # Nama bucket.
            tagging=oss.Tagging(  # Buat himpunan tag.
                tag_set=oss.TagSet(  # Himpunan tag berisi beberapa tag.
                    tags=[  # Definisikan daftar tag.
                        oss.Tag(  # Tag pertama.
                            key='test_key',  # Kunci tag.
                            value='test_value',  # Nilai tag.
                        ),
                        oss.Tag(  # Tag kedua.
                            key='test_key2',  # Kunci tag.
                            value='test_value2',  # Nilai tag.
                        ),
                    ],
                ),
            ),
        )
    )

    # Tampilkan kode status HTTP operasi dan ID permintaan.
    print(f'kode status: {result.status_code}, '  # Kode status HTTP, yang menunjukkan apakah permintaan berhasil.
          f'ID permintaan: {result.request_id}')    # ID permintaan, yang digunakan untuk debugging atau melacak permintaan.


if __name__ == "__main__":
    # Tentukan titik masuk dalam fungsi utama skrip saat skrip dijalankan secara langsung.
    main()
<?php

// Muat otomatis objek dan pustaka dependensi.
require_once __DIR__ . '/../vendor/autoload.php';

use AlibabaCloud\Oss\V2 as Oss;

// Tentukan parameter baris perintah.
$optsdesc = [
    "region" => ['help' => 'Wilayah tempat bucket berada', 'required' => True], // Parameter region wajib diisi.
    "endpoint" => ['help' => 'Nama domain yang dapat digunakan layanan lain untuk mengakses OSS', 'required' => False], // Parameter endpoint opsional.
    "bucket" => ['help' => 'Nama bucket', 'required' => True], // Nama bucket wajib diisi.
];

// Hasilkan daftar opsi panjang untuk mengurai parameter baris perintah.
$longopts = \array_map(function ($key) {
    return "$key:"; // Titik dua (:) setelah setiap parameter menunjukkan bahwa parameter tersebut wajib diisi.
}, array_keys($optsdesc));

// Uraikan parameter baris perintah.
$options = getopt("", $longopts); 

// Periksa apakah parameter wajib telah dikonfigurasi.
foreach ($optsdesc as $key => $value) {
    if ($value['required'] === True && empty($options[$key])) {
        $help = $value['help'];
        echo "Kesalahan: argumen berikut wajib diisi: --$key, $help"; // Menentukan bahwa parameter wajib belum dikonfigurasi.
        exit(1); 
    }
}

// Ambil nilai parameter baris perintah.
$region = $options["region"]; // Wilayah tempat bucket berada.
$bucket = $options["bucket"]; // Nama bucket.

// Gunakan variabel lingkungan untuk memuat informasi kredensial (ID AccessKey dan Rahasia AccessKey).
$credentialsProvider = new Oss\Credentials\EnvironmentVariableCredentialsProvider();

// Gunakan konfigurasi default SDK.
$cfg = Oss\Config::loadDefault();

// Tentukan penyedia kredensial.
$cfg->setCredentialsProvider($credentialsProvider);

// Tentukan wilayah.
$cfg->setRegion($region);

// Tentukan titik akhir jika disediakan.
if (isset($options["endpoint"])) {
    $cfg->setEndpoint($options["endpoint"]);
}

// Buat instans OSSClient.
$client = new Oss\Client($cfg);

// Buat tag yang berisi beberapa pasangan kunci-nilai untuk bucket.
$tagging = new Oss\Models\Tagging(
    tagSet: new Oss\Models\TagSet(
        tags: [new Oss\Models\Tag(key: 'key1', value: 'value1'), new Oss\Models\Tag(key: 'key2', value: 'value2')]
    )
);

// Buat objek permintaan untuk mengonfigurasi tag dan sertakan informasi tagging. 
$request = new Oss\Models\PutBucketTagsRequest(bucket: $bucket, tagging: $tagging);

// Konfigurasikan tag untuk bucket menggunakan metode putBucketTags.
$result = $client->putBucketTags($request);

// Keluarkan hasilnya.
printf(
    'kode status:' . $result->statusCode . PHP_EOL . // Kode status HTTP.
    'ID permintaan:' . $result->requestId // ID unik permintaan.
);

CLI ossutil

Anda dapat menggunakan ossutil untuk menambahkan atau mengubah tag. Untuk informasi tentang cara menginstal ossutil, lihat Instal ossutil.

Contoh berikut menambahkan atau mengubah tag untuk bucket examplebucket.

ossutil api put-bucket-tags --bucket examplebucket --tagging "{\"TagSet\":{\"Tag\":[{\"Key\":\"key1\",\"Value\":\"value1\"},{\"Key\":\"key2\",\"Value\":\"value2\"}]}}"

Untuk informasi lebih lanjut tentang perintah ini, lihat put-bucket-tags.

API Terkait

Metode di atas didasarkan pada operasi API. Untuk kustomisasi lanjutan, Anda dapat membuat permintaan REST API langsung. Hal ini mengharuskan Anda menghitung signature secara manual. Untuk informasi selengkapnya, lihat PutBucketTags.

Contoh otorisasi

Proyek berbeda dalam sebuah perusahaan sering kali menggunakan bucket OSS terpisah. Dengan menambahkan tag spesifik proyek ke bucket tersebut, Anda dapat menggunakan Kebijakan RAM untuk memberikan pengguna akses hanya ke bucket yang terkait dengan proyek mereka. Hal ini memungkinkan kontrol akses detail halus dan mencegah akses lintas-proyek ke sumber daya. Untuk contoh otorisasi spesifik, lihat Otorisasi Pengguna RAM untuk membaca dan menulis data di bucket dengan tag tertentu.