Tüm Ürünler
Search
Belge Merkezi

Object Storage Service:List buckets (OSS SDK for Go 1.0)

Son Güncelleme:Oct 01, 2026

Paket, Object Storage Service (OSS) içinde depolanan nesneler için bir konteynerdir. OSS'deki tüm nesneler paketlerde saklanır. Paketler alfabetik sıraya göre listelenir. Mevcut Alibaba Cloud hesabınıza ait olan ve belirli koşulları karşılayan paketleri tüm bölgelerde listeleyebilirsiniz.

Kullanım notları

  • Bu konuda China (Hangzhou) bölgesinin genel uç noktası kullanılmaktadır. OSS ile aynı bölgedeki diğer Alibaba Cloud hizmetlerinden OSS'ye erişmek istiyorsanız dahili uç nokta kullanın. OSS bölgeleri ve uç noktaları hakkında daha fazla bilgi için bkz. Bölgeler ve uç noktalar.

  • Bu konuda erişim kimlik bilgileri ortam değişkenlerinden alınır. Erişim kimlik bilgilerinin nasıl yapılandırılacağı hakkında daha fazla bilgi için bkz. Erişim kimlik bilgilerini yapılandırma.

  • Bu konuda bir OSS uç noktası kullanılarak bir OSSClient örneği oluşturulmaktadır. Özel etki alanı kullanımı veya Security Token Service (STS) kimlik bilgileriyle kimlik doğrulama gibi alternatif yapılandırmalar için bkz. İstemciyi yapılandırma (Go SDK V1).

  • Paketleri listelemek için oss:ListBuckets iznine sahip olmanız gerekir. Daha fazla bilgi için bkz. Özel ilke atama.

Örnekler

Aşağıdaki örnek kod, mevcut Alibaba Cloud hesabındaki tüm bölgelerde bulunan paketlerin nasıl listeleneceğini gösterir:

package main

import (
	"log"

	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
	// Obtain access credentials from environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured. 
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		log.Fatalf("Failed to create credentials provider: %v", err)
	}

	// Create an OSSClient instance. 
	// Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com. Specify your actual endpoint. 
	// Specify the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the region to cn-hangzhou. Specify the actual region.
	clientOptions := []oss.ClientOption{oss.SetCredentialsProvider(&provider)}
	clientOptions = append(clientOptions, oss.Region("yourRegion"))
	// Specify the version of the signature algorithm.
	clientOptions = append(clientOptions, oss.AuthVersion(oss.AuthV4))
	client, err := oss.New("yourEndpoint", "", "", clientOptions...)
	if err != nil {
		log.Fatalf("Failed to create OSS client: %v", err)
	}

	// List all buckets in all regions within the current Alibaba Cloud account. 
	marker := ""
	for {
		lsRes, err := client.ListBuckets(oss.Marker(marker))
		if err != nil {
			log.Fatalf("Failed to list buckets: %v", err)
		}

		// By default, a maximum of 100 buckets are listed at a time. 
		for _, bucket := range lsRes.Buckets {
			log.Printf("Bucket: %s", bucket.Name)
		}

		if !lsRes.IsTruncated {
			break
		}
		marker = lsRes.NextMarker
	}
}

SSS

Adlarında belirli bir ön ek bulunan paketleri nasıl listelerim?

Mevcut Alibaba Cloud hesabındaki tüm bölgelerde, adlarında example ön eki bulunan paketleri listelemek için aşağıdaki örnek kodu çalıştırın:

...
prefix := "example" // Specify the prefix.
lsRes, err := client.ListBuckets(oss.Prefix(prefix))
if err != nil {
	log.Fatalf("Failed to list buckets with prefix: %v", err)
}

log.Printf("Buckets with prefix '%s': %+v", prefix, lsRes.Buckets)
for _, bucket := range lsRes.Buckets {
	log.Printf("Bucket with prefix '%s': %s", prefix, bucket.Name)

}

Adları marker parametresiyle belirtilen paketten sonra alfabetik olarak gelen paketleri nasıl listelerim?

Mevcut Alibaba Cloud hesabındaki tüm bölgelerde, adları examplebucket paketinden sonra alfabetik olarak gelen paketleri listelemek için aşağıdaki örnek kodu çalıştırın:

...
marker := "examplebucket" // Specify the marker parameter.
lsRes, err := client.ListBuckets(oss.Marker(marker))
if err != nil {
	log.Fatalf("Failed to list buckets with marker: %v", err)
}

log.Printf("Buckets with marker '%s': %+v", marker, lsRes.Buckets)
for _, bucket := range lsRes.Buckets {
	log.Printf("Bucket with marker '%s': %s", marker, bucket.Name)
}

Belirli sayıda paketi nasıl listelerim?

Mevcut Alibaba Cloud hesabındaki tüm bölgelerde bulunan tüm paketleri listelemek ve listelenebilecek maksimum paket sayısını 500 olarak ayarlamak için aşağıdaki örnek kodu çalıştırın:

...
maxKeys := 500
lsRes, err := client.ListBuckets(oss.MaxKeys(maxKeys))
if err != nil {
	log.Fatalf("Failed to list buckets with max keys: %v", err)
}

log.Printf("My buckets max num (%d): %+v", maxKeys, lsRes.Buckets)
for _, bucket := range lsRes.Buckets {
	log.Printf("Bucket with maxKeys (%d): %s", maxKeys, bucket.Name)
}

İlgili kaynaklar

  • Paketleri listelemek için kullanılan tam örnek kodu görmek üzere GitHub adresini ziyaret edin.

  • Paketleri listelemek için çağırabileceğiniz API işlemi hakkında daha fazla bilgi için bkz. ListBuckets.