Bucket adalah kontainer yang digunakan untuk menyimpan objek. Topik ini menjelaskan cara membuat bucket.
Catatan penggunaan
Kode contoh dalam topik ini menggunakan ID Wilayah
cn-hangzhoudari Wilayah (Hangzhou) Tiongkok. Secara default, titik akhir publik digunakan untuk mengakses sumber daya dalam bucket. Jika Anda ingin mengakses sumber daya di bucket dengan menggunakan layanan Alibaba Cloud lainnya di wilayah yang sama dengan bucket tersebut, gunakan titik akhir internal. Untuk informasi lebih lanjut tentang wilayah dan titik akhir OSS, lihat Wilayah dan Titik Akhir.Dalam topik ini, kredensial akses diperoleh dari variabel lingkungan. Untuk informasi lebih lanjut tentang cara mengonfigurasi kredensial akses, lihat Konfigurasikan Kredensial Akses.
Mulai pukul 10:00 (UTC+8) pada 13 Oktober 2025, OSS akan menerapkan penyesuaian bertahap di semua wilayah untuk mengaktifkan Blokir Akses Publik secara default untuk bucket baru yang dibuat menggunakan API, OSS SDK, atau ossutil. Untuk detail waktu pasti ketika penyesuaian akan berlaku di setiap wilayah, lihat [Pengumuman Resmi] Penyesuaian Konfigurasi Blokir Akses Publik untuk Bucket Baru. Setelah Blokir Akses Publik diaktifkan, Anda tidak dapat mengonfigurasi izin akses publik, termasuk ACL publik (publik baca dan publik baca/tulis) dan kebijakan bucket yang mengizinkan akses publik. Anda dapat menonaktifkan fitur ini setelah bucket dibuat jika bisnis Anda memerlukan akses publik.
Izin
Secara default, Akun Alibaba Cloud memiliki izin penuh. Pengguna RAM atau Peran RAM di bawah Akun Alibaba Cloud tidak memiliki izin apa pun secara default. Akun Alibaba Cloud atau administrator akun harus memberikan izin operasi melalui Kebijakan RAM atau Kebijakan Bucket.
API | Aksi | Definisi |
PutBucket |
| Membuat bucket. |
| Setelah membuat bucket, izin ini diperlukan untuk memodifikasi ACL bucket. |
Metode
func (c *Client) PutBucket(ctx context.Context, request *PutBucketRequest, optFns ...func(*Options)) (*PutBucketResult, error)Parameter permintaan
Parameter | Tipe | Deskripsi |
ctx | context.Context | Konteks permintaan, yang dapat digunakan untuk menentukan durasi total permintaan. |
request | *PutBucketRequest | Menentukan parameter operasi tertentu. Untuk informasi lebih lanjut, lihat PutBucketRequest. |
optFns | ...func(*Options) | Opsional. Parameter tingkat operasi. Untuk informasi lebih lanjut, lihat Options. |
Parameter tanggapan
Parameter tanggapan | Tipe | Deskripsi |
result | *PutBucketResult | Tanggapan terhadap operasi. Parameter ini valid ketika nilai err adalah nil. Untuk informasi lebih lanjut, lihat PutBucketResult. |
err | error | Status permintaan. Jika permintaan gagal, nilai err tidak dapat nil. |
Contoh
Berikut ini adalah contoh kode yang menunjukkan cara membuat 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.
bucketName string // Nama bucket.
)
// Tentukan fungsi init yang digunakan untuk menginisialisasi parameter baris perintah.
func init() {
flag.StringVar(®ion, "region", "", "Wilayah tempat bucket berada.")
flag.StringVar(&bucketName, "bucket", "", "Nama bucket.")
}
func main() {
// Parsing 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 dan wilayah.
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
// Buat klien OSS.
client := oss.NewClient(cfg)
request := &oss.PutBucketRequest{
Bucket: oss.Ptr(bucketName), // Nama bucket.
}
// Kirim permintaan untuk membuat bucket.
result, err := client.PutBucket(context.TODO(), request)
if err != nil {
log.Fatalf("gagal membuat bucket %v", err)
}
// Tampilkan hasil pembuatan bucket.
log.Printf("hasil pembuatan bucket:%#v\n", result)
}