Configurar um bucket do Amazon S3 como um site - AWS SDK para Java 1.x

O AWS SDK para Java 1.x entrou no modo de manutenção em 31 de julho de 2024 e o fim do suporte está previsto para 31 de dezembro de 2025. Recomendamos que você migre para o AWS SDK for Java 2.x para continuar recebendo novos recursos, melhorias de disponibilidade e atualizações de segurança.

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.

nota

Esses exemplos de código pressupõem que você entenda o material em Usar o AWS SDK para Java e tenha configurado credenciais da AWS padrão usando as informações em Configurar credenciais e região da AWS para desenvolvimento.

Definir uma configuração do site de um bucket

Para definir a configuração do site de um bucket do Amazon S3, chame o método setWebsiteConfiguration do AmazonS3 com o nome do bucket para definir a configuração e um objeto BucketWebsiteConfiguration contendo a configuração do site do bucket.

Configurar um documento de índice é obrigatório; todos os outros parâmetros são opcionais.

Importações

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 da

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

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 o método getWebsiteConfiguration do AmazonS3 com o nome do bucket cuja configuração recuperar.

A configuração será retornada como um objeto BucketWebsiteConfiguration. Se não houver configuração de site para o bucket, null será retornado.

Importações

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 da

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); }

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 o método deleteWebsiteConfiguration do AmazonS3 com o nome do bucket cuja configuração será excluída.

Importações

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

Código da

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); }

Veja o exemplo completo no GitHub.

Mais informações