啟用網站託管 - Amazon Simple Storage Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

啟用網站託管

將儲存貯體設定為靜態網站時,您必須啟用靜態網站託管、設定索引文件,以及設定許可。

您可以使用 Amazon S3 主控台、REST API、AWS SDK、AWS CLI 或 AWS CloudFormation 啟用靜態網站託管。

若要使用自訂網域來設定您的網站,請參閱 教學課程:使用向 Route 53 註冊的自訂網域設定靜態網站

啟用靜態網站託管
  1. 登入 AWS Management Console,並開啟位於 https://console.aws.amazon.com/s3/ 的 Amazon S3 主控台。

  2. Buckets (儲存貯體名稱) 清單中,選擇希望為其啟用靜態網站託管的儲存貯體名稱。

  3. 選擇 Properties (屬性)。

  4. Static website hosting (靜態網站託管) 下,選擇 Edit (編輯)。

  5. 選擇 Use this bucket to host a website (使用此儲存貯體來託管網站)。

  6. Static website hosting (靜態網站託管) 下,選擇Enable (啟用)。

  7. 索引文件中,輸入索引文件的名稱,通常是 index.html

    索引文件名稱區分大小寫,而且必須完全符合您計畫上傳至 S3 儲存貯體的 HTML 索引文件檔案名稱。當您為網站託管設定儲存貯體時,必須指定索引文件。在對根網域或任何子資料夾提出請求時,Amazon S3 會傳回此索引文件。如需詳細資訊,請參閱「設定索引文件」。

  8. 若要為 4XX 類別錯誤提供自己的自訂錯誤文件,請在 Error document (錯誤文件) 中輸入自訂錯誤文件檔案名稱。

    錯誤文件名稱區分大小寫,而且必須完全符合您計畫上傳至 S3 儲存貯體的 HTML 錯誤文件檔案名稱。如果您未指定自訂錯誤文件且發生錯誤,則 Amazon S3 會傳回預設的 HTML 錯誤文件。如需詳細資訊,請參閱 設定自訂錯誤文件

  9. (選用) 如果您要指定進階重新導向規則,請在 Redirection rules (重新導向規則) 中輸入 JSON 來描述規則。

    例如,您可依據要求中特定的物件金鑰名稱或字首,依條件路由要求。如需詳細資訊,請參閱「配置重新引導規則以使用進階條件重新引導」。

  10. 選擇 Save changes (儲存變更)。

    Amazon S3 會為您的儲存貯體啟用靜態網站託管。在頁面底部的靜態網站託管下,您會看到儲存貯體的網站端點。

  11. Static website hosting 下,請記下 Endpoint (端點)

    端點是儲存貯體的 Amazon S3 網站端點。將儲存貯體設為靜態網站之後,您可以使用此端點來測試您的網站。

如需有關直接傳送 REST 請求以啟用靜態網站託管的詳細資訊,請參閱《Amazon Simple Storage Service API 參考》中的下列章節:

若要在 Amazon S3 託管靜態網站,可以設定網站託管用的 Amazon S3 儲存貯體,然後將網站內容上傳至儲存貯體。您也可以使用 AWS SDK,以程式設計方式建立、更新及刪除網站組態。SDK 提供 Amazon S3 REST API 的包裝函式類別。您也可以視應用程式之需要,直接從應用程式傳送 REST API 要求。

.NET

下列範例示範如何使用 AWS SDK for .NET 管理儲存貯體的網站組態。若要為儲存貯體新增網站組態,請您提供儲存貯體名稱和網站組態。網站組態資訊必須含有索引文件,且包含選擇性錯誤文件。這些文件必須存放在儲存貯體中。如需詳細資訊,請參閱 PUT 儲存貯體網站。如需 Amazon S3 網站功能的詳細資訊,請參閱 使用 Amazon S3 託管靜態網站

下列 C# 程式碼範例會將網站組態新增至指定的儲存貯體。組態會同時指定索引文件及錯誤文件名稱。如需如何建立及測試工作範例的說明,請參閱「執行 Amazon S3 .NET 程式碼範例」。

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 託管靜態網站

如需建立及測試可行範例的說明,請參閱 使用 AWS SDK for PHP 與執行 PHP 的範例

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

如需有關使用 AWS CLI 將 S3 儲存貯體設定為靜態網站的詳細資訊,請參閱《AWS CLI 命令參考》中的網站

接下來,您必須設定索引文件並設定許可。如需詳細資訊,請參閱 設定索引文件設定網站存取許可

您也可以選擇性地設定錯誤文件Web 流量記錄重新導向