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()chamaListBuckets(). -
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
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()chamaCreateBucket(). Emmain(), você precisa alterar a Região da AWS para a região da sua conta usando oenum. Você pode ver a região da sua conta fazendo login no Console de gerenciamento da AWSe 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
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()chamaDeleteBucket(). Emmain(), você precisa alterar a Região da AWS para a região da sua conta usando oenum. Você também precisa alterar obucket_namepara 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