Habilitar el alojamiento de sitios web - Amazon Simple Storage Service

Habilitar el alojamiento de sitios web

Cuando configura un bucket como sitio web estático, debe habilitar el alojamiento de sitios web estáticos, configurar un documento de índice y establecer permisos.

Puede habilitar el alojamiento de sitios web estáticos mediante la consola de Amazon S3, la API de REST, los SDK de AWS, la AWS CLI o AWS CloudFormation.

Para configurar el sitio web con un dominio personalizado, consulte Configuración de un sitio web estático mediante un dominio personalizado registrado con Route 53.

Para habilitar el alojamiento estático de sitios web

  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/.

  2. En la lista Buckets, seleccione el nombre del bucket para el que desea habilitar el alojamiento de sitios web estáticos.

  3. Seleccione Properties (Propiedades).

  4. Elija Static website hosting (Alojamiento de sitios web estáticos), elija Edit (Editar).

  5. Elija Use this bucket to host a website (Usar este bucket para alojar un sitio web).

  6. En Static website hosting (Alojamiento de sitios web estáticos), elija Enable (Habilitar).

  7. En Index Document (Documento de índice), escriba el nombre de archivo del documento de índice, normalmente index.html.

    El nombre del documento de índice distingue entre mayúsculas y minúsculas y debe coincidir exactamente con el nombre del archivo del documento de índice HTML que tiene previsto cargar en el bucket de S3. Al configurar un bucket para el alojamiento de sitios web, debe especificar un documento de índice. Amazon S3 devuelve este documento de índice cuando se reciben solicitudes en el dominio raíz o en cualquiera de las subcarpetas. Para obtener más información, consulte Configurar un documento de índice.

  8. Si desea proporcionar su propio documento de error personalizado para los errores de clase 4XX, escriba el nombre de archivo del documento de error personalizado en Error document (Documento de error).

    El nombre del documento de error distingue entre mayúsculas y minúsculas y debe coincidir exactamente con el nombre del archivo del documento de error HTML que tiene previsto cargar en el bucket de S3. Si no especifica un documento de error personalizado y se produce un error, Amazon S3 devuelve un documento de error HTML predeterminado. Para obtener más información, consulte Configurar un documento de error personalizado.

  9. (Opcional) Si desea especificar reglas de redireccionamiento avanzadas, en Redirection rules (Reglas de redireccionamiento), especifique XML para describir las reglas.

    Por ejemplo, puede dirigir condicionalmente las solicitudes según nombres de clave de objeto o prefijos específicos en la solicitud. Para obtener más información, consulte Configurar reglas de redireccionamiento para utilizar redireccionamiento condicional avanzado.

  10. Elija Save changes.

    Amazon S3 permite activar el alojamiento de sitios web estáticos para su bucket. En la parte inferior de la página, en Static website hosting (Alojamiento de sitios web estáticos), verá el punto de enlace del sitio web para su bucket.

  11. En Static website hosting (Alojamiento de sitios web estáticos), anote el valor de Endpoint (Punto de enlace).

    Endpoint (Punto de enlace) es el punto de enlace del sitio web de Amazon S3 para el bucket. Cuando termine de configurar el bucket como un sitio web estático, puede utilizar este punto de enlace para probar el sitio web.

Para obtener más información sobre cómo enviar solicitudes REST directamente para habilitar el alojamiento de sitios web estáticos, consulte las siguientes secciones en la Referencia de la API de Amazon Simple Storage Service:

Para alojar un sitio web estático en Amazon S3, debe configurar un bucket de S3 para el alojamiento de sitio web y cargar el contenido del sitio web en el bucket. También puede utilizar los SDK de AWS para crear, actualizar y eliminar la configuración del sitio web mediante programación. Los SDK proporcionan clases de encapsulamiento en toda la API de REST de Amazon S3. Si su aplicación lo requiere, puede enviar solicitudes de la API de REST directamente desde su aplicación.

.NET

El siguiente ejemplo muestra cómo usar AWS SDK for .NET para administrar la configuración de un sitio web para un bucket. Para agregar una configuración de sitio web a un bucket, proporcione el nombre del bucket y una configuración de sitio web. La configuración de sitio web debe incluir un documento de índice y puede contener un documento de error opcional. Estos documentos ya deben estar almacenados en el bucket. Para obtener más información, consulte la sección sobre Sitio web PUT Bucket. Para obtener más información acerca de la característica de sitio web de Amazon S3, consulte Alojamiento de un sitio web estático mediante Amazon S3.

El siguiente ejemplo de código C# agrega una configuración de sitio web al bucket específico. La configuración especifica los nombres tanto del documento de índice como el de error. Para obtener instrucciones acerca de cómo crear y probar una muestra funcional, consulte Ejecución de ejemplos de código .NET de Amazon S3.

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

El siguiente ejemplo de PHP agrega una configuración de sitio web al bucket específico. El método create_website_config proporciona explícitamente los nombres de los documentos de error e índice. El ejemplo recupera también la configuración del sitio web e imprime la respuesta. Para obtener más información acerca de la característica de sitio web de Amazon S3, consulte Alojamiento de un sitio web estático mediante Amazon S3.

Para obtener instrucciones sobre la creación y comprobación de una muestra funcional, consulte Uso del AWS SDK for PHP y ejecución de ejemplos de 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 obtener más información acerca de cómo usar la AWS CLI para configurar un bucket de S3 como un sitio web estático, consulte website en la Referencia de comandos de la AWS CLI.

A continuación, debe configurar el documento de índice y establecer permisos. Para obtener más información, consulte Configurar un documento de índice y Configurar permisos para el acceso a sitios web.

También puede configurar opcionalmente un documento de error, unregistro de tráfico web o una redirección.