Configuración de un bucket de Amazon S3 como un sitio web - AWS SDK para Java 1.x

AWS SDK para Java 1.x ha entrado en modo de mantenimiento el 31 de julio de 2024 y llegará al final de soporte el 31 de diciembre de 2025. Le recomendamos que migre a AWS SDK for Java 2.x para seguir recibiendo nuevas características, mejoras de disponibilidad y actualizaciones de seguridad.

Configuración de un bucket de Amazon S3 como un 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.

nota

En estos ejemplos de código se presupone que conoce la información que se describe en Uso del AWS SDK para Java y que ha configurado credenciales de AWS predeterminadas mediante la información de Configuración de credenciales y regiones de AWS para desarrollo.

Establecimiento de la configuración de sitio web de un bucket

Para establecer la configuración de sitio web de un bucket de Amazon S3, llame al método setWebsiteConfiguration de AmazonS3 con el nombre del bucket para el que se va a establecer la configuración y un objeto BucketWebsiteConfiguration que contenga la configuración de sitio web del bucket.

Es obligatorio establecer un documento de índice; todos los demás parámetros son opcionales.

Importaciones

import com.amazonaws.AmazonServiceException; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.BucketWebsiteConfiguration;

Código de

String bucket_name, String index_doc, String error_doc) { BucketWebsiteConfiguration website_config = null; if (index_doc == null) { website_config = new BucketWebsiteConfiguration(); } else if (error_doc == null) { website_config = new BucketWebsiteConfiguration(index_doc); } else { website_config = new BucketWebsiteConfiguration(index_doc, error_doc); } final AmazonS3 s3 = AmazonS3ClientBuilder.standard().withRegion(Regions.DEFAULT_REGION).build(); try { s3.setBucketWebsiteConfiguration(bucket_name, website_config); } catch (AmazonServiceException e) { System.out.format( "Failed to set website configuration for bucket '%s'!\n", bucket_name); System.err.println(e.getErrorMessage()); System.exit(1); }
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 de sitio web de un bucket de Amazon S3, llame al método getWebsiteConfiguration de AmazonS3 con el nombre del bucket para el que desea recuperar la configuración.

La configuración se devolverá como un objeto BucketWebsiteConfiguration. Si no hay ninguna configuración de sitio web para el bucket, se devolverá null.

Importaciones

import com.amazonaws.AmazonServiceException; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.BucketWebsiteConfiguration;

Código de

final AmazonS3 s3 = AmazonS3ClientBuilder.standard().withRegion(Regions.DEFAULT_REGION).build(); try { BucketWebsiteConfiguration config = s3.getBucketWebsiteConfiguration(bucket_name); if (config == null) { System.out.println("No website configuration found!"); } else { System.out.format("Index document: %s\n", config.getIndexDocumentSuffix()); System.out.format("Error document: %s\n", config.getErrorDocument()); } } catch (AmazonServiceException e) { System.err.println(e.getErrorMessage()); System.out.println("Failed to get website configuration!"); System.exit(1); }

Consulte el ejemplo completo en GitHub.

Eliminar la configuración de sitio web de un bucket

Para eliminar la configuración de sitio web de un bucket de Amazon S3, llame al método deleteWebsiteConfiguration de AmazonS3 con el nombre del bucket del que se va a eliminar la configuración.

Importaciones

import com.amazonaws.AmazonServiceException; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder;

Código de

final AmazonS3 s3 = AmazonS3ClientBuilder.standard().withRegion(Regions.DEFAULT_REGION).build(); try { s3.deleteBucketWebsiteConfiguration(bucket_name); } catch (AmazonServiceException e) { System.err.println(e.getErrorMessage()); System.out.println("Failed to delete website configuration!"); System.exit(1); }

Consulte el ejemplo completo en GitHub.

Más información