All Products
Search
Document Center

Object Storage Service:Buat bucket (Go SDK V2)

Last Updated:Mar 20, 2026

Bucket adalah wadah untuk menyimpan objek di OSS.

Prasyarat

Sebelum memulai, pastikan Anda telah:

  • Mengonfigurasi kredensial akses. Contoh dalam topik ini membaca kredensial dari variabel lingkungan. Untuk petunjuk penyiapan, lihat Konfigurasikan kredensial akses.

  • Memiliki izin oss:PutBucket. Secara default, Akun Alibaba Cloud memiliki izin penuh. Pengguna RAM dan Peran RAM tidak memiliki izin secara default—berikan izin tersebut melalui RAM Policy atau Bucket Policy.

Catatan penggunaan

  • Kode contoh menggunakan ID wilayah cn-hangzhou (Tiongkok (Hangzhou)). Secara default, titik akhir publik digunakan. Untuk mengakses sumber daya bucket dari layanan Alibaba Cloud lainnya di wilayah yang sama, gunakan titik akhir internal. Untuk pemetaan wilayah ke titik akhir, lihat Wilayah dan titik akhir.

  • Mulai 13 Oktober 2025 pukul 10.00 (UTC+8), OSS akan mengaktifkan fitur Block Public Access secara default untuk semua bucket baru yang dibuat melalui API, OSS SDK, atau ossutil. Peluncuran dilakukan secara bertahap di berbagai wilayah—lihat pengumuman resmi untuk jadwal lengkapnya. Saat Block Public Access diaktifkan, Anda tidak dapat menetapkan ACL publik (baca publik atau baca/tulis publik) atau kebijakan bucket yang mengizinkan akses publik. Untuk mengizinkan akses publik, nonaktifkan fitur ini setelah bucket dibuat.

Izin

APIActionDeskripsi
PutBucketoss:PutBucketMembuat bucket.
oss:PutBucketAclMemodifikasi ACL bucket setelah pembuatan.

Definisi metode

func (c *Client) PutBucket(ctx context.Context, request *PutBucketRequest, optFns ...func(*Options)) (*PutBucketResult, error)

Parameter permintaan

ParameterTipeDeskripsi
ctxcontext.ContextKonteks permintaan. Gunakan ini untuk mengatur timeout total permintaan.
request*PutBucketRequestParameter permintaan. Lihat PutBucketRequest.
optFns...func(*Options)(Opsional) Konfigurasi tingkat operasi. Lihat Options.

Parameter respons

ParameterTipeDeskripsi
result*PutBucketResultNilai kembali. Hanya valid ketika err bernilai nil. Lihat PutBucketResult.
errerrorStatus permintaan. Bernilai non-nil saat permintaan gagal.

Contoh

Contoh berikut membuat bucket. Berikan --region dan --bucket sebagai flag baris perintah.

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
)

func init() {
	flag.StringVar(&region, "region", "", "Wilayah tempat bucket berada.")
	flag.StringVar(&bucketName, "bucket", "", "Nama bucket.")
}

func main() {
	flag.Parse()

	if len(bucketName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("parameter tidak valid, nama bucket wajib diisi")
	}

	if len(region) == 0 {
		flag.PrintDefaults()
		log.Fatalf("parameter tidak valid, wilayah wajib diisi")
	}

	// Muat konfigurasi default. Kredensial dibaca dari variabel lingkungan.
	cfg := oss.LoadDefaultConfig().
		WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
		WithRegion(region)

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

	request := &oss.PutBucketRequest{
		Bucket: oss.Ptr(bucketName),
	}

	// Buat bucket.
	result, err := client.PutBucket(context.TODO(), request)
	if err != nil {
		log.Fatalf("gagal membuat bucket %v", err)
	}

	log.Printf("hasil pembuatan bucket:%#v\n", result)
}

Untuk contoh lengkap, lihat put_bucket.go di GitHub.

Langkah selanjutnya

Setelah membuat bucket, Anda dapat:

  • Unggah objek — Simpan file di bucket menggunakan PutObject atau unggah multi-bagian.

  • Tetapkan kelas penyimpanan — Kurangi biaya dengan memilih penyimpanan Standard, Infrequent Access, Archive, atau Cold Archive.

  • Konfigurasikan aturan siklus hidup — Secara otomatis memindahkan atau menghapus objek berdasarkan usia atau kelas penyimpanan.

  • Kontrol akses — Batasi atau berikan akses menggunakan RAM Policies, bucket policies, atau Access Control Lists (ACLs).

Referensi