啟用網站託管 - Amazon Simple Storage Service

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

啟用網站託管

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

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

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

啟用靜態網站託管
  1. 登入 AWS Management Console 並開啟 Amazon S3 主控台,位於https://console.aws.amazon.com/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. (選擇性) 如果您要指定進階重新導向規則,請在重新導向規則中輸入JSON以說明規則。

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

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

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

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

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

如需有關直接傳送REST請求以啟用靜態網站託管的詳細資訊,請參閱 Amazon 簡單儲存服務API參考中的以下各節:

若要在 Amazon S3 託管靜態網站,可以設定網站託管用的 Amazon S3 儲存貯體,然後將網站內容上傳至儲存貯體。您也可以使用 AWS SDKs以程式設計方式建立、更新和刪除網站組態。在 Amazon S3 周圍SDKs提供包裝類RESTAPI。如果您的應用程序需要它,您可以直接從應用程序發送RESTAPI請求。

.NET

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

下列 C# 程式碼範例會將網站組態新增至指定的儲存貯體。組態會同時指定索引文件及錯誤文件名稱。如需有關設定和執行程式碼範例的詳細資訊,請參閱. AWS SDK NET在中AWS SDK的。 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 託管靜態網站

有關 Ruby 的 AWS SDK更多信息API,請訪AWS SDK問 Ruby-版本 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 ]);

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

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

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