Tous les produits
Search
Centre de documentation

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

Dernière mise à jour :Sep 22, 2026

Un bucket est un conteneur pour les objets stockés dans Object Storage Service (OSS). Tous les objets OSS résident dans des buckets. Les buckets sont répertoriés par ordre alphabétique. Vous pouvez lister les buckets appartenant au compte Alibaba Cloud actuel dans toutes les régions et répondant à des conditions spécifiques.

Notes d'utilisation

  • Cette rubrique utilise le point de terminaison public de la région Chine (Hangzhou). Si vous accédez à OSS depuis d'autres services Alibaba Cloud situés dans la même région, utilisez un point de terminaison interne. Pour plus d'informations sur les régions et les points de terminaison OSS, consultez Régions et points de terminaison.

  • Les identifiants d'accès proviennent des variables d'environnement. Pour savoir comment les configurer, consultez Configurer les identifiants d'accès.

  • Cette rubrique explique comment créer une instance OSSClient avec un endpoint OSS. Pour d'autres configurations, comme l'utilisation d'un domaine personnalisé ou l'authentification via des identifiants du Security Token Service (STS), consultez Configurer un client (Go SDK V1).

  • Pour lister les buckets, vous devez disposer de l'autorisation oss:ListBuckets. Pour plus d'informations, consultez Accorder une politique personnalisée.

Exemples

L'exemple de code suivant montre comment lister les buckets dans toutes les régions du compte Alibaba Cloud actuel :

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
	}
}

FAQ

Comment lister les buckets dont les noms contiennent un préfixe spécifique ?

Exécutez l'exemple de code suivant pour lister les buckets dont les noms contiennent le préfixe example dans toutes les régions du compte Alibaba Cloud actuel :

...
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)

}

Comment lister les buckets dont les noms viennent après le bucket spécifié par le paramètre marker dans l'ordre alphabétique ?

Exécutez l'exemple de code suivant pour lister les buckets dont les noms viennent après le bucket nommé examplebucket dans l'ordre alphabétique, dans toutes les régions du compte Alibaba Cloud actuel :

...
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)
}

Comment lister un nombre spécifique de buckets ?

Exécutez l'exemple de code suivant pour lister tous les buckets dans toutes les régions du compte Alibaba Cloud actuel et limiter le nombre maximal de buckets listés à 500 :

...
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)
}

Références

  • Pour obtenir l'exemple de code complet utilisé pour lister les buckets, visitez GitHub.

  • Pour plus d'informations sur l'opération API permettant de lister les buckets, consultez ListBuckets.