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á.
Configurar um bucket do Amazon S3 como um site
É possível configurar um bucket do Amazon S3 para se comportar como um site. Para isso, você precisa definir a configuração do site.
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 AWS (para o serviço e a ação). Para obter mais informações, consulte Fornecimento de AWS credenciais.
Definir uma configuração do site de um bucket
Para definir a configuração do site de um bucket do Amazon S3, chame a PutBucketWebsite função S3Client's com um PutBucketWebsiteRequestobjeto contendo o nome do bucket e a configuração do site, fornecidos em um WebsiteConfigurationobjeto.
Configurar um documento de índice é obrigatório; todos os outros parâmetros são opcionais.
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
Definir a configuração de um site não modifica as permissões de acesso do bucket. Para tornar os arquivos visíveis na web, você também precisa definir uma política de bucket que permite acesso de leitura público aos arquivos no bucket. Para obter mais informações, consulte Gerenciar acesso aos buckets do Amazon S3 usando políticas de bucket.
Veja o exemplo completo no GitHub
Obter uma configuração do site de um bucket
Para obter a configuração do site de um bucket do Amazon S3, chame a GetBucketWebsite função S3Client's GetBucketWebsiteRequestcontendo o nome do bucket para o qual recuperar a configuração.
A configuração será retornada como um GetBucketWebsiteResultobjeto dentro do objeto de resultado. Se não houver configuração de site para o bucket, null será retornado.
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(); }
Veja o exemplo completo no GitHub
Excluir uma configuração do site de um bucket
Para excluir a configuração do site de um bucket do Amazon S3, chame a DeleteBucketWebsite função S3Client's com um DeleteBucketWebsiteRequest: contendo o nome do bucket do qual excluir a configuração.
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(); }
Veja o exemplo completo no GitHub
Mais informações
-
PUT Bucket website na Referência de API do Amazon Simple Storage Service.
-
GET Bucket website na Referência de API do Amazon Simple Storage Service.
-
DELETE Bucket website na Referência de API do Amazon Simple Storage Service.