Amazon S3 で使用する - AWS SDK for Java 2.x

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

Amazon S3 で使用する

このセクションでは、 AWS SDK for Java 2.xを使用して Amazon Simple Storage Service (S3) でプログラムする例を示します。

次の例には各手法を示すのに必要なコードのみが含まれます。完全なサンプルコードは、「」で入手できます GitHub。そこから、単一のソースファイルをダウンロードするかリポジトリをローカルにクローン作成して、ビルドし実行するためのすべての例を取得できます。

注記

バージョン 2.18.x 以降では、 はエンドポイントオーバーライドを含めるときに仮想ホスト形式のアドレス指定 AWS SDK for Java 2.x を使用します。これは、バケット名が有効な DNS ラベルである限り適用されます。

クライアントビルダーの trueforcePathStyle メソッドを呼び出して、クライアントにバケットにパス形式のアドレス指定を使用するように強制します。

以下の例は、エンドポイントオーバーライドを設定し、パス形式のアドレス指定を使用するサービスクライアントを示しています。

S3Client client = S3Client.builder() .region(Region.US_WEST_2) .endpointOverride(URI.create("https://s3.us-west-2.amazonaws.com")) .forcePathStyle(true) .build();

アクセスポイントまたはマルチリージョンアクセスポイントを使用する

Amazon S3 Access Points またはマルチリージョンアクセスポイントを設定したら、putObjectgetObject などのオブジェクトメソッドを呼び出して、バケット名の代わりにアクセスポイント ID を指定できます。

たとえば、アクセスポイント ARN 識別子が arn:aws:s3:us-west-2:123456789012:accesspoint/test の場合、次のスニペットを使用して putObject メソッドを呼び出すことができます。

Path path = Paths.get(URI.create("file:///temp/file.txt")); s3Client.putObject(builder -> builder .key("myKey") .bucket("arn:aws:s3:us-west-2:123456789012:accesspoint/test") , path);

ARN 文字列の代わりに、アクセスポイントのバケットスタイルのエイリアスbucket パラメータに使用することもできます。

マルチリージョンアクセスポイントを使用するには、bucket パラメータを次の形式のマルチリージョンアクセスポイント ARN に置き換えます。

arn:aws:s3::account-id:accesspoint/MultiRegionAccessPoint_alias

SDK for Java を使用してマルチリージョンアクセスポイントと連携するには、次の Maven 依存関係を追加します。Maven central で最新バージョンを検索します。

<dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>auth-crt</artifactId> <version>VERSION</version> </dependency>