ウェブサイトとしての Amazon S3 バケットの設定 - AWS SDK for Java 1.x

AWS SDK for Java 1.x は 2024 年 7 月 31 日にメンテナンスモードに入り、2025 年 12 月 31 日に end-of-support に到達します。新しい機能、可用性の向上、セキュリティの更新を引き続き受け取るAWS SDK for Java 2.xには、 に移行することをお勧めします。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ウェブサイトとしての Amazon S3 バケットの設定

Amazon S3 バケットを、ウェブサイトのように機能させるよう設定できます。これを行うには、ウェブサイト設定をセットする必要があります。

注記

これらのコード例では、ユーザーが AWS SDK for Java の使用の内容を理解し、開発用の AWS 認証情報とリージョンのセットアップの情報を使用してデフォルトの AWS 認証情報を設定していることを前提としています。

バケットのウェブサイト設定をセットする

Amazon S3 バケットのウェブサイト設定をセットするには、AmazonS3 の setWebsiteConfiguration メソッドを設定するバケット名で呼び出し、バケットのウェブサイト設定が含まれる BucketWebsiteConfiguration オブジェクトを呼び出します。

インデックスドキュメントの設定は必要ですが、他のすべてのパラメータはオプションです。

インポート

import com.amazonaws.AmazonServiceException; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.BucketWebsiteConfiguration;

Code

String bucket_name, String index_doc, String error_doc) { BucketWebsiteConfiguration website_config = null; if (index_doc == null) { website_config = new BucketWebsiteConfiguration(); } else if (error_doc == null) { website_config = new BucketWebsiteConfiguration(index_doc); } else { website_config = new BucketWebsiteConfiguration(index_doc, error_doc); } final AmazonS3 s3 = AmazonS3ClientBuilder.standard().withRegion(Regions.DEFAULT_REGION).build(); try { s3.setBucketWebsiteConfiguration(bucket_name, website_config); } catch (AmazonServiceException e) { System.out.format( "Failed to set website configuration for bucket '%s'!\n", bucket_name); System.err.println(e.getErrorMessage()); System.exit(1); }
注記

ウェブサイト設定をセットしても、バケットのアクセス権限は変更されません。ウェブ上でファイルが表示されるようにするには、バケットのファイルにパブリック読み取りアクセスを許可するバケットポリシーも設定する必要があります。詳細については、バケットポリシーを使用した Amazon S3 バケットへのアクセス管理を参照してください。

GitHub で完全な例をご覧ください。

バケットのウェブサイト設定を取得する

Amazon S3 バケットのウェブサイト設定を取得するには、AmazonS3 の getWebsiteConfiguration メソッドを、設定を取得するバケットの名前で呼び出します。

この設定は BucketWebsiteConfiguration オブジェクトとして返されます。バケットのウェブサイト設定がない場合は、null が返されます。

インポート

import com.amazonaws.AmazonServiceException; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.BucketWebsiteConfiguration;

Code

final AmazonS3 s3 = AmazonS3ClientBuilder.standard().withRegion(Regions.DEFAULT_REGION).build(); try { BucketWebsiteConfiguration config = s3.getBucketWebsiteConfiguration(bucket_name); if (config == null) { System.out.println("No website configuration found!"); } else { System.out.format("Index document: %s\n", config.getIndexDocumentSuffix()); System.out.format("Error document: %s\n", config.getErrorDocument()); } } catch (AmazonServiceException e) { System.err.println(e.getErrorMessage()); System.out.println("Failed to get website configuration!"); System.exit(1); }

GitHub で完全な例をご覧ください。

バケットのウェブサイト設定を削除する

Amazon S3 バケットのウェブサイト設定を削除するには、AmazonS3 の deleteWebsiteConfiguration メソッドを、設定を削除するバケットの名前で呼び出します。

インポート

import com.amazonaws.AmazonServiceException; import com.amazonaws.regions.Regions; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder;

Code

final AmazonS3 s3 = AmazonS3ClientBuilder.standard().withRegion(Regions.DEFAULT_REGION).build(); try { s3.deleteBucketWebsiteConfiguration(bucket_name); } catch (AmazonServiceException e) { System.err.println(e.getErrorMessage()); System.out.println("Failed to delete website configuration!"); System.exit(1); }

GitHub で完全な例をご覧ください。

詳細情報