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 ?
Comment lister les buckets dont les noms viennent après le bucket spécifié par le paramètre marker dans l'ordre alphabétique ?
Comment lister un nombre spécifique de buckets ?
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.