本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將儲存貯體設定為靜態網站時,您必須啟用靜態網站託管、設定索引文件,以及設定許可。
您可以使用 Amazon S3 主控台、REST API、 AWS SDKs AWS CLI、 或 啟用靜態網站託管 AWS CloudFormation。
若要使用自訂網域來設定您的網站,請參閱 教學課程:使用向 Route 53 註冊的自訂網域設定靜態網站。
啟用靜態網站託管
-
登入 AWS Management Console ,並在 https://console.aws.amazon.com/s3/
:// 開啟 Amazon S3 主控台。 -
在左側導覽窗格中,選擇一般用途儲存貯體。
-
在儲存貯體清單中,選擇要啟用靜態網站託管的儲存貯體名稱。
-
選擇 Properties (屬性)。
-
在 Static website hosting (靜態網站託管) 下,選擇 Edit (編輯)。
-
選擇 Use this bucket to host a website (使用此儲存貯體來託管網站)。
-
在 Static website hosting (靜態網站託管) 下,選擇Enable (啟用)。
-
在索引文件中,輸入索引文件的名稱,通常是
index.html
。索引文件名稱區分大小寫,而且必須完全符合您計畫上傳至 S3 儲存貯體的 HTML 索引文件檔案名稱。當您為網站託管設定儲存貯體時,必須指定索引文件。在對根網域或任何子資料夾提出請求時,Amazon S3 會傳回此索引文件。如需詳細資訊,請參閱「設定索引文件」。
-
若要為 4XX 類別錯誤提供自己的自訂錯誤文件,請在 Error document (錯誤文件) 中輸入自訂錯誤文件檔案名稱。
錯誤文件名稱區分大小寫,而且必須完全符合您計畫上傳至 S3 儲存貯體的 HTML 錯誤文件檔案名稱。如果您未指定自訂錯誤文件且發生錯誤,則 Amazon S3 會傳回預設的 HTML 錯誤文件。如需詳細資訊,請參閱設定自訂錯誤文件。
-
(選用) 如果您要指定進階重新導向規則,請在 Redirection rules (重新導向規則) 中輸入 JSON 來描述規則。
例如,您可依據要求中特定的物件金鑰名稱或字首,依條件路由要求。如需詳細資訊,請參閱「配置重新引導規則以使用進階條件重新引導」。
-
選擇 Save changes (儲存變更)。
Amazon S3 會為您的儲存貯體啟用靜態網站託管。在頁面底部的靜態網站託管下,您會看到儲存貯體的網站端點。
-
在 Static website hosting 下,請記下 Endpoint (端點)。
端點是儲存貯體的 Amazon S3 網站端點。將儲存貯體設為靜態網站之後,您可以使用此端點來測試您的網站。
使用 S3 主控台
啟用靜態網站託管
-
登入 AWS Management Console ,並在 https://console.aws.amazon.com/s3/
:// 開啟 Amazon S3 主控台。 -
在左側導覽窗格中,選擇一般用途儲存貯體。
-
在儲存貯體清單中,選擇要啟用靜態網站託管的儲存貯體名稱。
-
選擇 Properties (屬性)。
-
在 Static website hosting (靜態網站託管) 下,選擇 Edit (編輯)。
-
選擇 Use this bucket to host a website (使用此儲存貯體來託管網站)。
-
在 Static website hosting (靜態網站託管) 下,選擇Enable (啟用)。
-
在索引文件中,輸入索引文件的名稱,通常是
index.html
。索引文件名稱區分大小寫,而且必須完全符合您計畫上傳至 S3 儲存貯體的 HTML 索引文件檔案名稱。當您為網站託管設定儲存貯體時,必須指定索引文件。在對根網域或任何子資料夾提出請求時,Amazon S3 會傳回此索引文件。如需詳細資訊,請參閱「設定索引文件」。
-
若要為 4XX 類別錯誤提供自己的自訂錯誤文件,請在 Error document (錯誤文件) 中輸入自訂錯誤文件檔案名稱。
錯誤文件名稱區分大小寫,而且必須完全符合您計畫上傳至 S3 儲存貯體的 HTML 錯誤文件檔案名稱。如果您未指定自訂錯誤文件且發生錯誤,則 Amazon S3 會傳回預設的 HTML 錯誤文件。如需詳細資訊,請參閱設定自訂錯誤文件。
-
(選用) 如果您要指定進階重新導向規則,請在 Redirection rules (重新導向規則) 中輸入 JSON 來描述規則。
例如,您可依據要求中特定的物件金鑰名稱或字首,依條件路由要求。如需詳細資訊,請參閱「配置重新引導規則以使用進階條件重新引導」。
-
選擇 Save changes (儲存變更)。
Amazon S3 會為您的儲存貯體啟用靜態網站託管。在頁面底部的靜態網站託管下,您會看到儲存貯體的網站端點。
-
在 Static website hosting 下,請記下 Endpoint (端點)。
端點是儲存貯體的 Amazon S3 網站端點。將儲存貯體設為靜態網站之後,您可以使用此端點來測試您的網站。
如需有關直接傳送 REST 請求以啟用靜態網站託管的詳細資訊,請參閱《Amazon Simple Storage Service API 參考》中的下列章節:
使用 REST API
如需有關直接傳送 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# 程式碼範例會將網站組態新增至指定的儲存貯體。組態會同時指定索引文件及錯誤文件名稱。如需有關設定和執行程式碼範例的資訊,請參閱 適用於 .NET 的 AWS 開發套件開發人員指南中的適用於 .NET 的開發套件入門。 AWS
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 適用於 Ruby 的 SDK - 第 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 ]);
使用 AWS SDKs
若要在 Amazon S3 託管靜態網站,可以設定網站託管用的 Amazon S3 儲存貯體,然後將網站內容上傳至儲存貯體。您也可以使用 AWS SDK,以程式設計方式建立、更新及刪除網站組態。SDK 提供 Amazon S3 REST API 的包裝函式類別。您也可以視應用程式之需要,直接從應用程式傳送 REST API 要求。
- .NET
-
下列範例示範如何使用 AWS SDK for .NET 來管理儲存貯體的網站組態。若要為儲存貯體新增網站組態,請您提供儲存貯體名稱和網站組態。網站組態資訊必須含有索引文件,且包含選擇性錯誤文件。這些文件必須存放在儲存貯體中。如需詳細資訊,請參閱 PUT 儲存貯體網站。如需 Amazon S3 網站功能的詳細資訊,請參閱 使用 Amazon S3 託管靜態網站。
下列 C# 程式碼範例會將網站組態新增至指定的儲存貯體。組態會同時指定索引文件及錯誤文件名稱。如需有關設定和執行程式碼範例的資訊,請參閱 適用於 .NET 的 AWS 開發套件開發人員指南中的適用於 .NET 的開發套件入門。 AWS
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 適用於 Ruby 的 SDK - 第 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 ]);
下列範例示範如何使用 AWS SDK for .NET 來管理儲存貯體的網站組態。若要為儲存貯體新增網站組態,請您提供儲存貯體名稱和網站組態。網站組態資訊必須含有索引文件,且包含選擇性錯誤文件。這些文件必須存放在儲存貯體中。如需詳細資訊,請參閱 PUT 儲存貯體網站。如需 Amazon S3 網站功能的詳細資訊,請參閱 使用 Amazon S3 託管靜態網站。
下列 C# 程式碼範例會將網站組態新增至指定的儲存貯體。組態會同時指定索引文件及錯誤文件名稱。如需有關設定和執行程式碼範例的資訊,請參閱 適用於 .NET 的 AWS 開發套件開發人員指南中的適用於 .NET 的開發套件入門。 AWS
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);
}
}
}
}
如需使用 AWS CLI 將 S3 儲存貯體設定為靜態網站的詳細資訊,請參閱 AWS CLI 命令參考中的網站。
使用 AWS CLI
如需使用 AWS CLI 將 S3 儲存貯體設定為靜態網站的詳細資訊,請參閱 AWS CLI 命令參考中的網站。
接下來,您必須設定索引文件並設定許可。如需詳細資訊,請參閱 設定索引文件 及 設定網站存取許可。