Lista todos os buckets do Object Storage Service (OSS) da conta atual em todas as regiões, com filtragem opcional por grupo de recursos.
Antes de começar
Antes de iniciar, verifique se você atende aos seguintes requisitos:
A identidade que faz a solicitação tem a permissão
oss:ListBuckets. Para mais detalhes, consulte Conceder permissões personalizadas a um usuário RAM.Os exemplos usam a região China (Hangzhou) (
cn-hangzhou) e o endpoint público por padrão. Para acessar o OSS a partir de outros serviços da Alibaba Cloud na mesma região, use um endpoint interno. Para obter a lista completa de regiões e endpoints, consulte Regiões e endpoints.-
Para filtrar resultados por grupo de recursos, informe um ID de grupo de recursos na solicitação. O comportamento varia conforme a definição do parâmetro:
Se o ID do grupo de recursos for omitido, a solicitação não incluirá esse parâmetro e a resposta XML não conterá informações sobre grupos de recursos.
Se um ID de grupo de recursos for especificado, o OSS retornará apenas os buckets desse grupo.
Se o parâmetro de ID do grupo de recursos não estiver presente na solicitação, o OSS listará todos os buckets do solicitante.
Listar todos os buckets em todas as regiões
O exemplo abaixo usa EnvironmentVariableCredentialsProvider para carregar credenciais de variáveis de ambiente (OSS_ACCESS_KEY_ID, OSS_ACCESS_KEY_SECRET) e um paginador para iterar automaticamente por todos os resultados.
using OSS = AlibabaCloud.OSS.V2; // Alias the OSS SDK namespace for brevity.
var region = "cn-hangzhou"; // Required. The region where your buckets are located.
var endpoint = null as string; // Optional. Override the default endpoint (e.g., https://oss-cn-hangzhou.aliyuncs.com).
// Load default SDK configuration, then set credentials from environment variables.
var cfg = OSS.Configuration.LoadDefault();
cfg.CredentialsProvider = new OSS.Credentials.EnvironmentVariableCredentialsProvider();
cfg.Region = region;
if (endpoint != null)
{
cfg.Endpoint = endpoint;
}
// Create the OSS client.
using var client = new OSS.Client(cfg);
// Create a paginator to iterate through all buckets across pages.
var paginator = client.ListBucketsPaginator(new OSS.Models.ListBucketsRequest());
Console.WriteLine("Buckets:");
await foreach (var page in paginator.IterPageAsync())
{
foreach (var bucket in page.Buckets ?? [])
{
// Output: bucket name, storage class, and location.
Console.WriteLine($"Bucket: {bucket.Name}, {bucket.StorageClass}, {bucket.Location}");
}
}
Referências
Para obter o código de exemplo completo, consulte list_buckets.cs.