Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 
      中国的 Amazon Web Services 服务入门
         (PDF)。
    启用网站托管
将存储桶配置为静态网站时,您必须启用静态网站托管、配置索引文档和设置权限。
您可以使用 Amazon S3 控制台、REST API、Amazon SDK、Amazon CLI 或 Amazon CloudFormation 启用静态网站托管。
要使用自定义域配置您的网站,请参阅 教程:使用注册到 Route 53 的自定义域配置静态网站。
启用静态网站托管
-  登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/。 
- 
    在左侧导航窗格中,选择通用存储桶。 
- 
      在存储桶列表中,选择要为其启用静态网站托管的存储桶的名称。 
- 
      选择属性。 
- 
      在静态网站托管下,请选择编辑。 
- 
      请选择使用此存储桶托管网站。 
- 
      在静态网站托管下,请选择启用。 
- 
          在 Index document (索引文档) 中,输入索引文档的文件名,通常为 index.html。
 索引文档名称区分大小写,并且必须与您计划上传到 S3 存储桶的 HTML 索引文档的文件名完全匹配。当您为网站托管配置存储桶时,您必须指定索引文档。当对根域或任何子文件夹发出请求时,Amazon S3 将返回此索引文档。有关更多信息,请参阅 配置索引文档。 
- 
          要为 4XX 类错误提供您自己的自定义错误文档,请在错误文档中输入自定义错误文档文件名。 错误文档名称区分大小写,并且必须与您计划上传到 S3 存储桶的 HTML 错误文档的文件名完全匹配。如果未指定自定义错误文档并发生错误,Amazon S3 返回默认 HTML 错误文档。有关更多信息,请参阅 配置自定义错误文档。 
- 
          (可选)如果要指定高级重定向规则,请在 Redirection rules(重定向规则)中,输入 JSON 来描述规则。 例如,您可以根据请求中的特定对象键名或前缀按条件路由请求。有关更多信息,请参阅 配置重新导向规则以使用高级条件重新导向。 
- 
      选择 Save changes(保存更改)。 Amazon S3 为您的存储桶启用静态网站托管。在页面底部的静态网站托管下,您可以看到存储桶的网站端点。 
- 
								在静态网站托管下,记下端点。 端点是存储桶的 Amazon S3 网站端点。将存储桶配置为静态网站后,您可以使用此端点来测试您的网站。 
有关直接发送 REST 请求以启用静态网站托管的更多信息,请参阅《Amazon Simple Storage Service API 参考》中的以下部分:
若要在 Amazon S3 上托管静态网站,需要为网站托管配置 Amazon S3 存储桶,然后将您的网站内容上传到该存储桶。您还可以使用 Amazon SDK 以编程方式创建、更新和删除网站配置。SDK 围绕 Amazon S3 REST API 提供封装类。如果应用程序需要它,可以直接从应用程序发送 REST API 请求。
		- .NET
- 
				以下示例说明如何使用 适用于 .NET 的 Amazon SDK 管理存储桶的网站配置。要将网站配置添加到存储桶,请提供存储桶名称和网站配置。网站配置必须包含索引文档,并且可包含可选的错误文档。这些文档必须存储在存储桶中。有关更多信息,请参阅 PUT Bucket 网站。有关 Amazon S3 网站功能的更多信息,请参阅 使用 Amazon S3 托管静态网站。 以下 C# 代码示例将网站配置添加到指定的存储桶。该配置指定索引文档和错误文档名称。有关设置和运行代码示例的信息,请参阅《适用于 .NET 的 Amazon SDK 开发人员指南》中的适用于 .NET 的 Amazon SDK 入门。 using Amazon;
using Amazon.S3;
using Amazon.S3.Model;
using System;
using System.Threading.Tasks;
namespace Amazon.DocSamples.S3
{
    class WebsiteConfigTest
    {
        private const string bucketName = "*** bucket name ***";
        private const string indexDocumentSuffix = "*** index object key ***"; // For example, index.html.
        private const string errorDocument = "*** error object key ***"; // For example, error.html.
        // Specify your bucket region (an example region is shown).
        private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2;
        private static IAmazonS3 client;
        public static void Main()
        {
            client = new AmazonS3Client(bucketRegion);
            AddWebsiteConfigurationAsync(bucketName, indexDocumentSuffix, errorDocument).Wait();
        }
        static async Task AddWebsiteConfigurationAsync(string bucketName,
                                            string indexDocumentSuffix,
                                            string errorDocument)
        {
            try
            {
                // 1. Put the website configuration.
                PutBucketWebsiteRequest putRequest = new PutBucketWebsiteRequest()
                {
                    BucketName = bucketName,
                    WebsiteConfiguration = new WebsiteConfiguration()
                    {
                        IndexDocumentSuffix = indexDocumentSuffix,
                        ErrorDocument = errorDocument
                    }
                };
                PutBucketWebsiteResponse response = await client.PutBucketWebsiteAsync(putRequest);
                // 2. Get the website configuration.
                GetBucketWebsiteRequest getRequest = new GetBucketWebsiteRequest()
                {
                    BucketName = bucketName
                };
                GetBucketWebsiteResponse getResponse = await client.GetBucketWebsiteAsync(getRequest);
                Console.WriteLine("Index document: {0}", getResponse.WebsiteConfiguration.IndexDocumentSuffix);
                Console.WriteLine("Error document: {0}", getResponse.WebsiteConfiguration.ErrorDocument);
            }
            catch (AmazonS3Exception e)
            {
                Console.WriteLine("Error encountered on server. Message:'{0}' when writing an object", e.Message);
            }
            catch (Exception e)
            {
                Console.WriteLine("Unknown encountered on server. Message:'{0}' when writing an object", e.Message);
            }
        }
    }
}
 
- PHP
- 
				以下 PHP 示例将网站配置添加到指定的存储桶。create_website_config方法显式提供索引文档和错误文档名称。该示例还检索网站配置并输出响应。有关 Amazon S3 网站功能的更多信息,请参阅 使用 Amazon S3 托管静态网站。
 有关适用于 Ruby 的 Amazon 开发工具包 API 的更多信息,请转到适用于 Ruby 的 Amazon 开发工具包 – 版本 2。  require 'vendor/autoload.php';
use Aws\S3\S3Client;
$bucket = '*** Your Bucket Name ***';
$s3 = new S3Client([
    'version' => 'latest',
    'region'  => 'us-east-1'
]);
// Add the website configuration.
$s3->putBucketWebsite([
    'Bucket'                => $bucket,
    'WebsiteConfiguration'  => [
        'IndexDocument' => ['Suffix' => 'index.html'],
        'ErrorDocument' => ['Key' => 'error.html']
    ]
]);
// Retrieve the website configuration.
$result = $s3->getBucketWebsite([
    'Bucket' => $bucket
]);
echo $result->getPath('IndexDocument/Suffix');
// Delete the website configuration.
$s3->deleteBucketWebsite([
    'Bucket' => $bucket
]);
 
有关使用 Amazon CLI 将 S3 存储桶配置为静态网站的更多信息,请参阅《Amazon CLI 命令参考》中的网站。
接下来,您必须配置索引文档并设置权限。有关信息,请参阅 配置索引文档 和 设置访问网站的权限。
还可以有选择性地配置错误文档、Web 流量日志记录或重定向。