

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Creación, listado y eliminación de buckets
<a name="examples-s3-buckets"></a>

Todos los *objetos* o archivos de Amazon Simple Storage Service (Amazon S3) están contenidos en un *bucket*, que representa una carpeta de objetos. Cada bucket tiene un nombre único a nivel mundial dentro de AWS. Para obtener más información, consulte [Uso de buckets de Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html) en la Guía del usuario de Amazon Simple Storage Service.

## Requisitos previos
<a name="codeExamplePrereq"></a>

Antes de comenzar, le recomendamos que lea [Primeros pasos con el AWS SDK para C\$1\$1](getting-started.md). 

Descargue el código de ejemplo y compile la solución tal y como se describe en [Introducción a los ejemplos de código](getting-started-code-examples.md). 

Para ejecutar los ejemplos, el perfil de usuario que su código utilice para realizar las solicitudes debe tener los permisos adecuados en AWS (para el servicio y la acción). Para obtener más información, consulte [Proporcionar credenciales de AWS](credentials.md).

## Obtener una lista de buckets
<a name="list-buckets"></a>

Para ejecutar el ejemplo `list_buckets`, en el símbolo del sistema, vaya hasta la carpeta en la que el sistema de compilación crea los ejecutables de compilación. Ejecute el ejecutable con un nombre similar a `run_list_buckets` (el nombre completo del archivo ejecutable variará en función de su sistema operativo). El resultado muestra una lista de los buckets de su cuenta, si tiene alguno, o una lista vacía si no tienes ningún bucket.

En `list_buckets.cpp`, hay dos métodos:
+ `main()` llama a `ListBuckets()`. 
+ `ListBuckets()` usa el SDK para consultar sus depósitos.

El objeto `S3Client` llama al método `ListBuckets()` del SDK. Si se ejecuta correctamente, el método devuelve un objeto `ListBucketOutcome`, que contiene un objeto `ListBucketResult`. El objeto `ListBucketResult` llama al método `GetBuckets()` para obtener una lista de objetos `Bucket` que contienen información sobre cada bucket de Amazon S3 de su cuenta.

 **Código de** 

```
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;
}
```

Consulte el [ejemplo de list\$1buckets](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/s3/list_buckets.cpp) completo en Github.

## Crear un bucket
<a name="create-bucket"></a>



Para ejecutar el ejemplo `create_bucket`, en el símbolo del sistema, vaya hasta la carpeta en la que el sistema de compilación crea los ejecutables de compilación. Ejecute el ejecutable con un nombre similar a `run_create_bucket` (el nombre completo del archivo ejecutable variará en función de su sistema operativo). El código crea un depósito vacío en su cuenta y, a continuación, muestra si la solicitud se ha realizado correctamente o no.

En `create_bucket.cpp`, hay dos métodos: 
+ `main()` llama a `CreateBucket()`. En `main()`, tiene que cambiar Región de AWS por la región de su cuenta con `enum`. Para ver la región de su cuenta, inicie sesión en la [Consola de administración de AWS](https://console.aws.amazon.com/) y localice la región en la esquina superior derecha. 
+ `CreateBucket()` utiliza el SDK para crear un bucket. 



El objeto `S3Client` llama al método `CreateBucket()` del SDK, transfiriéndole un objeto `CreateBucketRequest` con el nombre del bucket. De forma predeterminada, los buckets se crean en la región *us-east-1* (Norte de Virginia). Si su región no es *us-east-1*, el código establece una restricción de bucket para garantizar que el bucket se cree en su región.

 **Código de** 

```
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();
}
```

Consulte el [ejemplo de create\$1buckets](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/s3/create_bucket.cpp) completo en Github.

## Eliminar un bucket
<a name="delete-bucket"></a>



Para ejecutar el ejemplo `delete_bucket`, en el símbolo del sistema, vaya hasta la carpeta en la que el sistema de compilación crea los ejecutables de compilación. Ejecute el ejecutable con un nombre similar a `run_delete_bucket` (el nombre completo del archivo ejecutable variará en función de su sistema operativo). El código elimina el bucket especificado de su cuenta y, a continuación, muestra si la solicitud se ha realizado correctamente o no.

En `delete_bucket.cpp`, hay dos métodos. 
+ `main()` llama a `DeleteBucket()`. En `main()`, tiene que cambiar Región de AWS por la región de su cuenta con `enum`. También debe cambiar `bucket_name` por el nombre del bucket que desea eliminar. 
+ `DeleteBucket()` usa el SDK para eliminar el bucket. 



El objeto `S3Client` usa el método `DeleteBucket()` del SDK, transfiriéndole un objeto `DeleteBucketRequest` con el nombre del bucket que se va a eliminar. El bucket debe estar vacío para que funcione correctamente.

 **Código**

```
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();
}
```

Consulte el [ejemplo de delete\$1bucket](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/s3/delete_bucket.cpp) completo en Github.