配置Amazon S3存储桶作为网站 - AWS SDK for Java

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

配置Amazon S3存储桶作为网站

您可以配置 Amazon S3 存储桶,使其具有与网站类似的行为。要执行此操作,您需要设置其网站配置。

注意

这些代码示例假设你了解中的材料使用AWS SDK for Java并且已配置默认值AWS使用中的信息的凭据设置AWS发展凭证和区域.

设置存储桶的网站配置

要设置Amazon S3存储桶的网站配置,调用 AmazonS3setWebsiteConfiguration方法,其中包含要为其设置配置的存储桶名称,以及BucketWebsiteConfiguration包含存储桶网站配置的对象。

设置索引文档是必需的;所有其他参数都是可选的。

导入

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;

代码

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

设置网站配置不会修改您的存储桶的访问权限。要使您的文件在 Web 上可见,您还需要设置一个存储桶策略,允许对存储桶中文件的公共读取访问权限。有关更多信息,请参阅 。管理对 的访问Amazon S3使用存储桶策略.

请参阅 GitHub 上的完整示例

获取存储桶的网站配置

要获取Amazon S3存储桶的网站配置,调用 AmazonS3getWebsiteConfiguration方法和要检索配置的存储桶的名称。

将以 BucketWebsiteConfiguration 对象的形式返回配置。如果该存储桶没有网站配置,则会返回 null

导入

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;

代码

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

请参阅 GitHub 上的完整示例

删除存储桶的网站配置

删除Amazon S3存储桶的网站配置,调用 AmazonS3deleteWebsiteConfiguration方法和要从中删除配置的存储桶的名称。

导入

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

代码

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

请参阅 GitHub 上的完整示例

更多信息