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
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 en la Guía del usuario de Amazon Simple Storage Service.
Requisitos previos
Antes de comenzar, le recomendamos que lea Primeros pasos con el AWS SDK para C++.
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.
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.
Obtener una lista de buckets
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 aListBuckets(). -
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_buckets
Crear un bucket
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 aCreateBucket(). Enmain(), tiene que cambiar Región de AWS por la región de su cuenta conenum. Para ver la región de su cuenta, inicie sesión en la Consola de administración de AWSy 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_buckets
Eliminar un bucket
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 aDeleteBucket(). Enmain(), tiene que cambiar Región de AWS por la región de su cuenta conenum. También debe cambiarbucket_namepor 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_bucket