

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
<a name="examples-s3-buckets"></a>

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](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html) no Guia do usuário do Amazon Simple Storage Service.

## Pré-requisitos
<a name="codeExamplePrereq"></a>

Antes de começar, recomendamos que você leia [Getting started using the AWS SDK para C\$1\$1](getting-started.md). 

Baixe o exemplo código de código e crie a solução conforme descrito em [Conceitos básicos dos exemplos de código](getting-started-code-examples.md). 

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](credentials.md).

## Listar buckets
<a name="list-buckets"></a>

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\$1buckets](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/s3/list_buckets.cpp) completo no Github.

## Criar um bucket
<a name="create-bucket"></a>



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](https://console.aws.amazon.com/) 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\$1buckets](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/s3/create_bucket.cpp) completo no Github.

## Excluir um bucket
<a name="delete-bucket"></a>



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\$1buckets](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/s3/delete_bucket.cpp) completo no Github.