本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
啟用網站託管
將儲存貯體設定為靜態網站時,您必須啟用靜態網站託管、設定索引文件,以及設定許可。
您可以使用 Amazon S3 主控台、RESTAPI、、 AWS SDKs AWS CLI或 啟用靜態網站託管 AWS CloudFormation。
若要使用自訂網域來設定您的網站,請參閱 教學課程:使用向 Route 53 註冊的自訂網域設定靜態網站。
啟用靜態網站託管
-
登入 AWS Management Console 並在 開啟 Amazon S3 主控台https://console.aws.amazon.com/s3/。
-
在 Buckets (儲存貯體名稱) 清單中,選擇希望為其啟用靜態網站託管的儲存貯體名稱。
-
選擇 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錯誤文件。如需詳細資訊,請參閱設定自訂錯誤文件。
-
(選用) 如果您想要指定進階重新導向規則,請在重新導向規則 中輸入 JSON 來描述規則。
例如,您可依據要求中特定的物件金鑰名稱或字首,依條件路由要求。如需詳細資訊,請參閱「配置重新引導規則以使用進階條件重新引導」。
-
選擇 Save changes (儲存變更)。
Amazon S3 會為您的儲存貯體啟用靜態網站託管。在頁面底部的靜態網站託管下,您會看到儲存貯體的網站端點。
-
在 Static website hosting 下,請記下 Endpoint (端點)。
端點是儲存貯體的 Amazon S3 網站端點。將儲存貯體設為靜態網站之後,您可以使用此端點來測試您的網站。
如需直接傳送REST請求以啟用靜態網站託管的詳細資訊,請參閱 Amazon Simple Storage Service API參考中的下列章節:
若要在 Amazon S3 託管靜態網站,可以設定網站託管用的 Amazon S3 儲存貯體,然後將網站內容上傳至儲存貯體。您也可以使用 AWS SDKs以程式設計方式建立、更新和刪除網站組態。SDKs 提供圍繞 Amazon S3 的包裝程式類別RESTAPI。如果您的應用程式需要,您可以直接從應用程式傳送RESTAPI請求。
- .NET
-
下列範例示範如何使用 AWS SDK for .NET 來管理儲存貯體的網站組態。若要為儲存貯體新增網站組態,請您提供儲存貯體名稱和網站組態。網站組態資訊必須含有索引文件,且包含選擇性錯誤文件。這些文件必須存放在儲存貯體中。如需詳細資訊,請參閱PUT儲存貯體網站 。如需 Amazon S3 網站功能的詳細資訊,請參閱 使用 Amazon S3 託管靜態網站。
下列 C# 程式碼範例會將網站組態新增至指定的儲存貯體。組態會同時指定索引文件及錯誤文件名稱。如需有關設定和執行程式碼範例的資訊,請參閱適用於 AWS SDK的 中適用於 的 入門NETAWS 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 託管靜態網站。
如需有關 for Ruby 的詳細資訊 AWS SDKAPI,請前往 AWS SDK for 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
]);
如需使用 AWS CLI 將 S3 儲存貯體設定為靜態網站的詳細資訊,請參閱 AWS CLI 命令參考 中的網站。
接下來,您必須設定索引文件並設定許可。如需詳細資訊,請參閱 設定索引文件 及 設定網站存取許可。
您也可以選擇性地設定錯誤文件、Web 流量記錄或重新導向。