Topik ini menjelaskan cara menentukan apakah sebuah bucket ada.
Catatan penggunaan
Kode contoh dalam topik ini menggunakan ID Wilayah
cn-hangzhoudari Wilayah China (Hangzhou). Secara default, titik akhir publik digunakan untuk mengakses sumber daya di dalam bucket. Jika Anda ingin mengakses sumber daya di dalam bucket 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.
Untuk menentukan apakah sebuah bucket ada, Anda harus memiliki izin
oss:GetBucketAcl. Untuk informasi lebih lanjut, lihat Lampirkan kebijakan kustom ke Pengguna RAM.
Metode
func (c *Client) IsBucketExist(ctx context.Context, bucket string, optFns ...func(*Options)) (bool, error)Parameter permintaan
Parameter | Tipe | Deskripsi |
ctx | context.Context | Konteks permintaan, yang dapat digunakan untuk menentukan durasi total permintaan. |
bucket | string | Nama bucket. |
optFns | ...func(*Options) | Opsional. Parameter tingkat operasi. Untuk informasi lebih lanjut, lihat Options. |
Parameter respons
Parameter respons | Tipe | Deskripsi |
flag | bool | Respons terhadap operasi. Parameter ini valid ketika nilai err adalah nil. |
err | error | Status permintaan. Jika permintaan gagal, nilai err tidak bisa nil. |
Contoh
Berikut ini adalah kode contoh yang menunjukkan cara menentukan apakah sebuah bucket ada:
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)
// Tentukan apakah bucket ada.
result, err := client.IsBucketExist(context.TODO(), bucketName)
if err != nil {
log.Fatalf("gagal memeriksa apakah bucket ada %v", err)
}
// Tampilkan hasilnya.
log.Printf("apakah bucket ada: %#v\n", result)
}
Referensi
Untuk kode contoh lengkap yang digunakan untuk menentukan apakah sebuah bucket ada, kunjungi GitHub.
Untuk informasi lebih lanjut tentang operasi API yang dapat Anda panggil untuk menentukan apakah sebuah bucket ada, lihat IsBucketExist.