Habilitar a hospedagem de sites - Amazon Simple Storage Service

Habilitar a hospedagem de sites

Ao configurar um bucket como um site estático, você deve habilitar a hospedagem de sites estáticos, configurar um documento de índice e definir permissões.

Você pode habilitar a hospedagem estática de sites usando o console do Amazon S3, a API REST, os AWS SDKs, a AWS CLI ou o AWS CloudFormation.

Para configurar seu site com um domínio personalizado, consulte Tutorial: Configurar um site estático usando um domínio personalizado registrado no Route 53.

Como habilitar a hospedagem de sites estáticos
  1. Faça login no AWS Management Console e abra o console do Amazon S3 em https://console.aws.amazon.com/s3/.

  2. Na lista Buckets, escolha o nome do bucket para o qual você deseja habilitar a hospedagem de site estático.

  3. Escolha Properties (Propriedades).

  4. Em Static website hosting (Hospedagem estática de sites), escolha Edit (Editar).

  5. Escolha Use this bucket to host a website (Usar este bucket para hospedar um site).

  6. Em Static website hosting (Hospedagem estática de sites), escolha Enable (Ativar).

  7. Em Index Document (Documento de índice), insira o nome do arquivo do documento de índice, que geralmente é index.html.

    O nome do documento de índice diferencia letras maiúsculas de minúsculas e deve corresponder exatamente ao nome do arquivo do documento de índice HTML do qual você planeja fazer upload para o bucket do S3. Quando você configura um bucket para hospedagem de site, deve especificar um documento de índice. O Amazon S3 retorna esse documento de índice quando as solicitações são feitas para o domínio raiz ou alguma subpasta. Para obter mais informações, consulte Configurar um documento de índice.

  8. Para fornecer seu próprio documento de erros personalizado para erros da classe 4XX, em Error document (Documento de erros), insira o nome de arquivo do documento de erros personalizado.

    O nome do documento de erro diferencia letras maiúsculas de minúsculas e deve corresponder exatamente ao nome do arquivo do documento de erro HTML do qual você planeja fazer upload para o bucket do S3. Se você não especificar um documento de erro personalizado e ocorrer um erro, o Amazon S3 retornará um documento de erro HTML padrão. Para ter mais informações, consulte Configurar um documento de erro personalizado.

  9. (Opcional) Se você quiser especificar regras avançadas de redirecionamento em Redirection rules (Regras de redirecionamento), use JSON para descrevê-las.

    Por exemplo, você pode encaminhar solicitações condicionalmente de acordo com nomes de chave de objeto ou prefixos específicos na solicitação. Para obter mais informações, consulte Configurar regras de redirecionamento para usar redirecionamentos condicionais avançados.

  10. Selecione Save changes.

    O Amazon S3 permite a hospedagem estática de sites para seu bucket. Na parte inferior da página, em Static website hosting (Hospedagem estática de sites), você verá o endpoint do site do seu bucket.

  11. Em Static website hosting (Hospedagem de sites estáticos), anote o Endpoint.

    O Endpoint é o endpoint do site do Amazon S3 para o bucket. Depois de concluir a configuração do bucket como um site estático, é possível usar esse endpoint para testar o site.

Para obter mais informações sobre o envio de solicitações REST diretamente para habilitar a hospedagem estática de sites, consulte as seções a seguir na Referência da API do Amazon Simple Storage Service:

Para hospedar um site estático no Amazon S3, você configura um bucket do Amazon S3 para hospedagem de sites e faz upload do conteúdo do seu site no bucket. Você também pode usar os AWS SDKs para criar, atualizar e excluir a configuração do site de forma programática. Os SDKs fornecem classes de wrapper na API REST do Amazon S3. Se seu aplicativo exigir, você pode enviar solicitações de API REST diretamente do seu aplicativo.

.NET

O exemplo a seguir mostra como usar o AWS SDK for .NET para gerenciar a configuração de site para um bucket. Para adicionar uma configuração de site a um bucket, forneça um nome de bucket e uma configuração de site. A configuração de site deve incluir um documento de índice e pode conter um documento de erro opcional. Esses documentos devem ser armazenados no bucket. Para obter mais informações, consulte PUT Bucket website. Para obter mais informações sobre o recurso de site do Amazon S3, consulte Hospedagem de um site estático usando o Amazon S3.

O exemplo de código C# a seguir adiciona uma configuração de site ao bucket especificado. A configuração especifica o documento de índice e os nomes de documento de erros. Para obter instruções sobre como criar e testar um exemplo funcional, consulte Executar os exemplos de código do Amazon S3 .NET.

using Amazon; using Amazon.S3; using Amazon.S3.Model; using System; using System.Threading.Tasks; namespace Amazon.DocSamples.S3 { class WebsiteConfigTest { private const string bucketName = "*** bucket name ***"; private const string indexDocumentSuffix = "*** index object key ***"; // For example, index.html. private const string errorDocument = "*** error object key ***"; // For example, error.html. // Specify your bucket region (an example region is shown). private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2; private static IAmazonS3 client; public static void Main() { client = new AmazonS3Client(bucketRegion); AddWebsiteConfigurationAsync(bucketName, indexDocumentSuffix, errorDocument).Wait(); } static async Task AddWebsiteConfigurationAsync(string bucketName, string indexDocumentSuffix, string errorDocument) { try { // 1. Put the website configuration. PutBucketWebsiteRequest putRequest = new PutBucketWebsiteRequest() { BucketName = bucketName, WebsiteConfiguration = new WebsiteConfiguration() { IndexDocumentSuffix = indexDocumentSuffix, ErrorDocument = errorDocument } }; PutBucketWebsiteResponse response = await client.PutBucketWebsiteAsync(putRequest); // 2. Get the website configuration. GetBucketWebsiteRequest getRequest = new GetBucketWebsiteRequest() { BucketName = bucketName }; GetBucketWebsiteResponse getResponse = await client.GetBucketWebsiteAsync(getRequest); Console.WriteLine("Index document: {0}", getResponse.WebsiteConfiguration.IndexDocumentSuffix); Console.WriteLine("Error document: {0}", getResponse.WebsiteConfiguration.ErrorDocument); } catch (AmazonS3Exception e) { Console.WriteLine("Error encountered on server. Message:'{0}' when writing an object", e.Message); } catch (Exception e) { Console.WriteLine("Unknown encountered on server. Message:'{0}' when writing an object", e.Message); } } } }
PHP

O exemplo de PHP a seguir adiciona uma configuração de site ao bucket especificado. O método create_website_config fornece explicitamente os nomes de documentos de índice e de documentos de erros. O exemplo também recupera a configuração de site e imprime a resposta. Para obter mais informações sobre o recurso de site do Amazon S3, consulte Hospedagem de um site estático usando o Amazon S3.

Para obter instruções sobre criar e testar um exemplo funcional, consulte Usar o AWS SDK for PHP e executar exemplos do PHP.

require 'vendor/autoload.php'; use Aws\S3\S3Client; $bucket = '*** Your Bucket Name ***'; $s3 = new S3Client([ 'version' => 'latest', 'region' => 'us-east-1' ]); // Add the website configuration. $s3->putBucketWebsite([ 'Bucket' => $bucket, 'WebsiteConfiguration' => [ 'IndexDocument' => ['Suffix' => 'index.html'], 'ErrorDocument' => ['Key' => 'error.html'] ] ]); // Retrieve the website configuration. $result = $s3->getBucketWebsite([ 'Bucket' => $bucket ]); echo $result->getPath('IndexDocument/Suffix'); // Delete the website configuration. $s3->deleteBucketWebsite([ 'Bucket' => $bucket ]);

Para obter mais informações sobre como usar a AWS CLI para configurar um bucket do S3 como um site estático, consulte site na Referência de comandos da AWS CLI.

Depois, é necessário configurar o documento de índice e definir permissões. Para obter informações, consulte Configurar um documento de índice e Configuração de permissões para acesso ao site.

Também é possível configurar um documento de erro, o registro em log do tráfego da web ou um redirecionamento.