O AWS SDK para Java 1.x entrou no modo de manutenção em 31 de julho de 2024 e o fim do suporte
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
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
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
Mais informações
-
PUT Bucket website na Referência de API do Amazon S3
-
GET Bucket website na Referência de API do Amazon S3
-
DELETE Bucket website na Referência de API do Amazon S3