全部产品
Search
文档中心

Object Storage Service:Membuat bucket menggunakan OSS SDK untuk Go 2.0

更新时间:Aug 13, 2025

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-hangzhou dari 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

oss:PutBucket

Membuat bucket.

oss:PutBucketAcl

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(&region, "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)
}

Referensi

  • Untuk kode contoh lengkap yang digunakan untuk membuat bucket, kunjungi GitHub.

  • Untuk informasi lebih lanjut tentang operasi API yang dapat Anda panggil untuk membuat bucket, lihat PutBucket.