View a markdown version of this page

将 Amazon S3 桶配置为网站 - Amazon SDK for Java 1.x
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon SDK for Java 1.x于2025年12月31日达到支撑终止状态。我们建议您迁移到 Amazon SDK for Java 2.x 以继续获得新功能、可用性改进和安全更新。

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

将 Amazon S3 桶配置为网站

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

注意

这些代码示例假定您了解使用Amazon SDK for Java 中的内容,并且已使用设置用于开发的 Amazon 凭证和区域中的信息配置默认 Amazon 凭证。

设置存储桶的网站配置

要设置 Amazon S3 桶网站配置,请使用要设置配置的桶名称,以及包含桶网站配置的 BucketWebsiteConfiguration 对象,来调用 AmazonS3 的 setWebsiteConfiguration 方法。

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

导入

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 桶的网站配置,请使用要检索其配置的桶的名称来调用 AmazonS3 的 getWebsiteConfiguration 方法。

将以 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 桶的网站配置,请使用要从中删除配置的桶的名称来调用 AmazonS3 的 deleteWebsiteConfiguration 方法。

导入

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 上的完整示例

更多信息