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.
Configuración de un bucket de Amazon S3 como sitio web
Puede configurar un bucket de Amazon S3 para que se comporte como un sitio web. Para ello, debe establecer la configuración de su sitio web.
Requisitos previos
Antes de empezar, le recomendamos que lea Cómo empezar a usar el AWS SDK para C++.
Descargue el código de ejemplo y cree la solución tal y como se describe enIntroducción a los ejemplos de código.
Para ejecutar los ejemplos, el perfil de usuario que utilice su código para realizar las solicitudes debe tener los permisos adecuados AWS (para el servicio y la acción). Para obtener más información, consulte Proporcionar AWS credenciales.
Establecimiento de la configuración de sitio web de un bucket
Para establecer la configuración del sitio web de un bucket de Amazon S3, llame a la PutBucketWebsite
función S3Client
's con un PutBucketWebsiteRequestobjeto que contenga el nombre del bucket y la configuración de su sitio web, proporcionados en un WebsiteConfigurationobjeto.
Es obligatorio establecer un documento de índice; todos los demás parámetros son opcionales.
Código
bool AwsDoc::S3::putWebsiteConfig(const Aws::String &bucketName, const Aws::String &indexPage, const Aws::String &errorPage, const Aws::S3::S3ClientConfiguration &clientConfig) { Aws::S3::S3Client client(clientConfig); Aws::S3::Model::IndexDocument indexDocument; indexDocument.SetSuffix(indexPage); Aws::S3::Model::ErrorDocument errorDocument; errorDocument.SetKey(errorPage); Aws::S3::Model::WebsiteConfiguration websiteConfiguration; websiteConfiguration.SetIndexDocument(indexDocument); websiteConfiguration.SetErrorDocument(errorDocument); Aws::S3::Model::PutBucketWebsiteRequest request; request.SetBucket(bucketName); request.SetWebsiteConfiguration(websiteConfiguration); Aws::S3::Model::PutBucketWebsiteOutcome outcome = client.PutBucketWebsite(request); if (!outcome.IsSuccess()) { std::cerr << "Error: PutBucketWebsite: " << outcome.GetError().GetMessage() << std::endl; } else { std::cout << "Success: Set website configuration for bucket '" << bucketName << "'." << std::endl; } return outcome.IsSuccess(); }
nota
El establecimiento de la configuración de sitio web no modifica los permisos de acceso del bucket. Para que los archivos estén visibles en la web, también deberá definir una política de bucket que permita el acceso de lectura pública a los archivos del bucket. Para obtener más información, consulte Administración del acceso a buckets de Amazon S3 mediante políticas de buckets.
Consulte el ejemplo completo en Github
Obtener la configuración de sitio web de un bucket
Para obtener la configuración del sitio web de un bucket de Amazon S3, llama a la GetBucketWebsite
función S3Client
's y GetBucketWebsiteRequestcontiene el nombre del bucket para recuperar la configuración.
La configuración se devolverá como un GetBucketWebsiteResultobjeto dentro del objeto de resultado. Si no hay ninguna configuración de sitio web para el bucket, se devolverá null
.
Código
bool AwsDoc::S3::getWebsiteConfig(const Aws::String &bucketName, const Aws::S3::S3ClientConfiguration &clientConfig) { Aws::S3::S3Client s3Client(clientConfig); Aws::S3::Model::GetBucketWebsiteRequest request; request.SetBucket(bucketName); Aws::S3::Model::GetBucketWebsiteOutcome outcome = s3Client.GetBucketWebsite(request); if (!outcome.IsSuccess()) { const Aws::S3::S3Error &err = outcome.GetError(); std::cerr << "Error: GetBucketWebsite: " << err.GetMessage() << std::endl; } else { Aws::S3::Model::GetBucketWebsiteResult websiteResult = outcome.GetResult(); std::cout << "Success: GetBucketWebsite: " << std::endl << std::endl << "For bucket '" << bucketName << "':" << std::endl << "Index page : " << websiteResult.GetIndexDocument().GetSuffix() << std::endl << "Error page: " << websiteResult.GetErrorDocument().GetKey() << std::endl; } return outcome.IsSuccess(); }
Consulte el ejemplo completo en Github
Eliminar la configuración de sitio web de un bucket
Para eliminar la configuración del sitio web de un bucket de Amazon S3, llama a la DeleteBucketWebsite
función S3Client
's con un DeleteBucketWebsiteRequest: que contenga el nombre del bucket del que se va a eliminar la configuración.
Código
bool AwsDoc::S3::deleteBucketWebsite(const Aws::String &bucketName, const Aws::S3::S3ClientConfiguration &clientConfig) { Aws::S3::S3Client client(clientConfig); Aws::S3::Model::DeleteBucketWebsiteRequest request; request.SetBucket(bucketName); Aws::S3::Model::DeleteBucketWebsiteOutcome outcome = client.DeleteBucketWebsite(request); if (!outcome.IsSuccess()) { auto err = outcome.GetError(); std::cerr << "Error: deleteBucketWebsite: " << err.GetExceptionName() << ": " << err.GetMessage() << std::endl; } else { std::cout << "Website configuration was removed." << std::endl; } return outcome.IsSuccess(); }
Consulte el ejemplo completo en Github
Más información
-
El sitio web PUT Bucket en la referencia de la API de Amazon Simple Storage Service
-
Obtenga el sitio web de Bucket en la referencia de la API de Amazon Simple Storage Service
-
Eliminar el sitio web de Bucket en la referencia de la API de Amazon Simple Storage Service