Criar, listar e excluir buckets - AWS SDK para C++

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Criar, listar e excluir buckets

Cada objeto ou arquivo no Amazon Simple Storage Service (Amazon S3) está contido em um bucket, que representa uma pasta de objetos. Cada bucket tem um nome globalmente exclusivo na AWS. Para acessar mais informações, consulte Trabalhar com buckets do S3 no Guia do usuário do Amazon Simple Storage Service.

Pré-requisitos

Antes de começar, recomendamos que você leia Getting started using the AWS SDK para C++.

Baixe o exemplo código de código e crie a solução conforme descrito em Conceitos básicos dos exemplos de código.

Para executar os exemplos, o perfil de usuário que seu código usa para fazer as solicitações deve ter as permissões adequadas na AWS (para o serviço e a ação). Para acessar mais informações, consulte Fornecer credenciais da AWS.

Listar buckets

Para executar o exemplo de list_buckets, em um prompt de comando, navegue até a pasta onde seu sistema cria seus executáveis de compilação. Utilize o executável da mesma forma que run_list_buckets (o nome completo do arquivo executável será diferente com base no seu sistema operacional). O resultado listará os buckets da sua conta, se você tiver algum, ou exibirá uma lista vazia se você não tiver nenhum bucket.

Em list_buckets.cpp, há dois métodos.

  • main() chama ListBuckets().

  • ListBuckets() usa o SDK para consultar seus buckets.

O objeto S3Client chama o método ListBuckets() do SDK. Se for bem-sucedido, o método exibirá um objeto ListBucketOutcome que contém um objeto ListBucketResult. O objeto ListBucketResult chama o método GetBuckets() para acessar uma lista de objetos Bucket que contêm informações sobre cada bucket do Amazon S3 em sua conta.

Código da

bool AwsDoc::S3::listBuckets(const Aws::S3::S3ClientConfiguration &clientConfig) { Aws::S3::S3Client client(clientConfig); auto outcome = client.ListBuckets(); bool result = true; if (!outcome.IsSuccess()) { std::cerr << "Failed with error: " << outcome.GetError() << std::endl; result = false; } else { std::cout << "Found " << outcome.GetResult().GetBuckets().size() << " buckets\n"; for (auto &&b: outcome.GetResult().GetBuckets()) { std::cout << b.GetName() << std::endl; } } return result; }

Veja o exemplo list_buckets completo no Github.

Criar um bucket

Para executar o exemplo de create_bucket, em um prompt de comando, navegue até a pasta onde seu sistema cria seus executáveis de compilação. Utilize o executável da mesma forma que run_create_bucket (o nome completo do arquivo executável será diferente com base no seu sistema operacional). O código cria um bucket vazio em sua conta e, depois, exibe êxito ou a falha da solicitação.

Em create_bucket.cpp, há dois métodos.

  • main() chama CreateBucket(). Em main(), você precisa alterar a Região da AWS para a região da sua conta usando o enum. Você pode ver a região da sua conta fazendo login no Console de gerenciamento da AWS e localizando a região no canto superior direito.

  • CreateBucket() usa o SDK para criar um bucket.

O objeto S3Client chama o método CreateBucket() do SDK, transmitindo uma CreateBucketRequest com o nome do bucket. Por padrão, os buckets são criados na região us-east-1 (Norte da Virgínia). Se sua região não for us-east-1, o código vai configurar uma restrição de bucket a fim de garantir que ele seja criado em sua região.

Código da

bool AwsDoc::S3::createBucket(const Aws::String &bucketName, const Aws::S3::S3ClientConfiguration &clientConfig) { Aws::S3::S3Client client(clientConfig); Aws::S3::Model::CreateBucketRequest request; request.SetBucket(bucketName); if (clientConfig.region != "us-east-1") { Aws::S3::Model::CreateBucketConfiguration createBucketConfig; createBucketConfig.SetLocationConstraint( Aws::S3::Model::BucketLocationConstraintMapper::GetBucketLocationConstraintForName( clientConfig.region)); request.SetCreateBucketConfiguration(createBucketConfig); } Aws::S3::Model::CreateBucketOutcome outcome = client.CreateBucket(request); if (!outcome.IsSuccess()) { auto err = outcome.GetError(); std::cerr << "Error: createBucket: " << err.GetExceptionName() << ": " << err.GetMessage() << std::endl; } else { std::cout << "Created bucket " << bucketName << " in the specified AWS Region." << std::endl; } return outcome.IsSuccess(); }

Veja o exemplo create_buckets completo no Github.

Excluir um bucket

Para executar o exemplo de delete_bucket, em um prompt de comando, navegue até a pasta onde seu sistema cria seus executáveis de compilação. Utilize o executável da mesma forma que run_delete_bucket (o nome completo do arquivo executável será diferente com base no seu sistema operacional). O código exclui o bucket especificado em sua conta e, depois, exibe êxito ou a falha da solicitação.

Em delete_bucket.cpp há dois métodos.

  • main() chama DeleteBucket(). Em main(), você precisa alterar a Região da AWS para a região da sua conta usando o enum. Você também precisa alterar o bucket_name para o nome do bucket a ser excluído.

  • O DeleteBucket() usa o SDK para excluir o bucket.

O objeto S3Client usa o método DeleteBucket() do SDK, transmitindo um objeto DeleteBucketRequest com o nome do bucket a ser excluído. O bucket deve estar vazio para ser bem-sucedido.

Código da

bool AwsDoc::S3::deleteBucket(const Aws::String &bucketName, const Aws::S3::S3ClientConfiguration &clientConfig) { Aws::S3::S3Client client(clientConfig); Aws::S3::Model::DeleteBucketRequest request; request.SetBucket(bucketName); Aws::S3::Model::DeleteBucketOutcome outcome = client.DeleteBucket(request); if (!outcome.IsSuccess()) { const Aws::S3::S3Error &err = outcome.GetError(); std::cerr << "Error: deleteBucket: " << err.GetExceptionName() << ": " << err.GetMessage() << std::endl; } else { std::cout << "The bucket was deleted" << std::endl; } return outcome.IsSuccess(); }

Veja o exemplo delete_buckets completo no Github.