メニュー
Amazon Simple Storage Service
開発者ガイド (API Version 2006-03-01)

AWS SDK for .NET によるウェブサイトの管理

以下のタスクは、.NET クラスを使用して、バケットのウェブサイト設定を管理する手順を示しています。Amazon S3 ウェブサイト機能の詳細については、「Amazon S3 での静的ウェブサイトのホスティング」を参照してください。

バケットのウェブサイト設定の管理

1

AmazonS3Client クラスのインスタンスを作成します。

2

ウェブサイト設定をバケットに追加するには、PutBucketWebsite メソッドを実行します。バケット名と、インデックスドキュメント名およびエラードキュメント名を含むウェブサイト設定情報を指定する必要があります。インデックスドキュメントは指定する必要がありますが、エラードキュメントは省略可能です。この情報を指定するには、PutBucketWebsiteRequest オブジェクトを作成します。

ウェブサイト設定を取得するには、バケット名を指定して GetBucketWebsite メソッドを実行します。

バケットのウェブサイト設定を削除するには、バケット名を指定して DeleteBucketWebsite メソッドを実行します。ウェブサイト設定を削除すると、バケットはウェブサイトエンドポイントからは使用できなくなります。詳細については、「ウェブサイトエンドポイント」を参照してください。

以下の C# コード例は、前述のタスクの例です。

Copy
static IAmazonS3 client; client = new AmazonS3Client(Amazon.RegionEndpoint.USWest2); // Add website configuration. PutBucketWebsiteRequest putRequest = new PutBucketWebsiteRequest() { BucketName = bucketName, WebsiteConfiguration = new WebsiteConfiguration() { IndexDocumentSuffix = indexDocumentSuffix, ErrorDocument = errorDocument } }; client.PutBucketWebsite(putRequest); // Get bucket website configuration. GetBucketWebsiteRequest getRequest = new GetBucketWebsiteRequest() { BucketName = bucketName }; GetBucketWebsiteResponse getResponse = client.GetBucketWebsite(getRequest); // Print configuration data. Console.WriteLine("Index document: {0}", getResponse.WebsiteConfiguration.IndexDocumentSuffix); Console.WriteLine("Error document: {0}", getResponse.WebsiteConfiguration.ErrorDocument); // Delete website configuration. DeleteBucketWebsiteRequest deleteRequest = new DeleteBucketWebsiteRequest() { BucketName = bucketName }; client.DeleteBucketWebsite(deleteRequest);

次の C# コード例は、指定したバケットにウェブサイト設定を追加しています。この設定で、インデックスドキュメント名とエラードキュメント名の両方を指定します。作業サンプルを作成およびテストする方法については、「.NET コード例のテスト」を参照してください。

Copy
using System; using System.Configuration; using System.Collections.Specialized; using Amazon.S3; using Amazon.S3.Model; namespace s3.amazon.com.docsamples { class AddWebsiteConfig { static string bucketName = "*** Provide existing bucket name ***"; static string indexDocumentSuffix = "*** Provide index document name ***"; static string errorDocument = "*** Provide error document name ***"; static IAmazonS3 client; public static void Main(string[] args) { using (client = new AmazonS3Client(Amazon.RegionEndpoint.USWest2)) { Console.WriteLine("Adding website configuration"); AddWebsiteConfiguration(bucketName, indexDocumentSuffix, errorDocument); } // Get bucket website configuration. GetBucketWebsiteRequest getRequest = new GetBucketWebsiteRequest() { BucketName = bucketName }; GetBucketWebsiteResponse getResponse = client.GetBucketWebsite(getRequest); // Print configuration data. Console.WriteLine("Index document: {0}", getResponse.WebsiteConfiguration.IndexDocumentSuffix); Console.WriteLine("Error document: {0}", getResponse.WebsiteConfiguration.ErrorDocument); Console.WriteLine("Press any key to continue..."); Console.ReadKey(); } static void AddWebsiteConfiguration(string bucketName, string indexDocumentSuffix, string errorDocument) { try { PutBucketWebsiteRequest putRequest = new PutBucketWebsiteRequest() { BucketName = bucketName, WebsiteConfiguration = new WebsiteConfiguration() { IndexDocumentSuffix = indexDocumentSuffix, ErrorDocument = errorDocument } }; client.PutBucketWebsite(putRequest); } catch (AmazonS3Exception amazonS3Exception) { if (amazonS3Exception.ErrorCode != null && (amazonS3Exception.ErrorCode.Equals("InvalidAccessKeyId") || amazonS3Exception.ErrorCode.Equals("InvalidSecurity"))) { Console.WriteLine("Check the provided AWS Credentials."); Console.WriteLine("Sign up for service at http://aws.amazon.com/s3"); } else { Console.WriteLine( "Error:{0}, occurred when adding website configuration. Message:'{1}", amazonS3Exception.ErrorCode, amazonS3Exception.Message); } } } } }