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

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

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

ウェブサイト設定の管理

1

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

2

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

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

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

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

Copy
AmazonS3 s3client = new AmazonS3Client(new ProfileCredentialsProvider()); // Add website configuration. s3Client.setBucketWebsiteConfiguration(bucketName, new BucketWebsiteConfiguration(indexDoc , errorDoc)); // Get website configuration. BucketWebsiteConfiguration bucketWebsiteConfiguration = s3Client.getBucketWebsiteConfiguration(bucketName); // Delete website configuration. s3Client.deleteBucketWebsiteConfiguration(bucketName);

次の Java コード例では、指定したバケットにウェブサイト設定を追加し、それを取得して、削除します。作業サンプルを作成およびテストする方法については、「Java コード例のテスト」を参照してください。

Copy
import java.io.IOException; import com.amazonaws.AmazonClientException; import com.amazonaws.AmazonServiceException; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3Client; import com.amazonaws.services.s3.model.BucketWebsiteConfiguration; public class WebsiteConfiguration { private static String bucketName = "*** bucket name ***"; private static String indexDoc = "*** index document name ***"; private static String errorDoc = "*** error document name ***"; public static void main(String[] args) throws IOException { AmazonS3 s3Client = new AmazonS3Client(new ProfileCredentialsProvider()); try { // Get existing website configuration, if any. getWebsiteConfig(s3Client); // Set new website configuration. s3Client.setBucketWebsiteConfiguration(bucketName, new BucketWebsiteConfiguration(indexDoc, errorDoc)); // Verify (Get website configuration again). getWebsiteConfig(s3Client); // Delete s3Client.deleteBucketWebsiteConfiguration(bucketName); // Verify (Get website configuration again) getWebsiteConfig(s3Client); } catch (AmazonServiceException ase) { System.out.println("Caught an AmazonServiceException, which" + " means your request made it " + "to Amazon S3, but was rejected with an error response" + " for some reason."); System.out.println("Error Message: " + ase.getMessage()); System.out.println("HTTP Status Code: " + ase.getStatusCode()); System.out.println("AWS Error Code: " + ase.getErrorCode()); System.out.println("Error Type: " + ase.getErrorType()); System.out.println("Request ID: " + ase.getRequestId()); } catch (AmazonClientException ace) { System.out.println("Caught an AmazonClientException, which means"+ " the client encountered " + "a serious internal problem while trying to " + "communicate with Amazon S3, " + "such as not being able to access the network."); System.out.println("Error Message: " + ace.getMessage()); } } private static BucketWebsiteConfiguration getWebsiteConfig( AmazonS3 s3Client) { System.out.println("Get website config"); // 1. Get website config. BucketWebsiteConfiguration bucketWebsiteConfiguration = s3Client.getBucketWebsiteConfiguration(bucketName); if (bucketWebsiteConfiguration == null) { System.out.println("No website config."); } else { System.out.println("Index doc:" + bucketWebsiteConfiguration.getIndexDocumentSuffix()); System.out.println("Error doc:" + bucketWebsiteConfiguration.getErrorDocument()); } return bucketWebsiteConfiguration; } }