Amazon S3Tranfer Manager (プレビュー) - AWS SDK for Java

で利用可能になりましたAmazon S3転送マネージャー (開発者プレビュー)のAWS SDK for Java高速ファイル転送の場合は2.x。ぜひお試しいただき、ご意見をお聞かせください

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

Amazon S3Tranfer Manager (プレビュー)

Amazon S3 Transfer Manager (プレビュー) は、AWS SDK for Java 2.x 用のオープンソースの高レベルファイル転送ユーティリティであり、Amazon Simple Storage Service (S3) との間でファイルを簡単に転送するために使用できます。のJavaバインディングの上に構築されていますAWS共通ランタイム S3 クライアント、活用によるスループット、パフォーマンス、および信頼性の向上による恩恵を受けているAmazon S3parallel 転送用のマルチパートアップロードとバイト範囲フェッチ

このトピックは、S3 Transfer Manager の使用に役立ちます。

前提条件

Transfer Manager を使用するには、次の手順を行います。

  • AWS SDK for Java 2.x の設定 のステップを完了します。

  • SDK for Java のバージョン 2.17.16 以降を使用するように、プロジェクトの依存関係を (例: pom.xml または build.gradle ファイルで) 設定します。

  • artifactId s3-transfer-manager のバージョン 2.17.16-PREVIEW を含めます。

次のコード例は、プロジェクトの依存関係を設定する方法を示しています。

<project> <dependencyManagement> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>bom</artifactId> <version>2.17.16</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>s3-transfer-manager</artifactId> <version>2.17.16-PREVIEW</version> </dependency> </dependencies> </project>

インポート

このトピックのコードスニペットを利用するには、次のインポートを含めます。

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.transfer.s3.S3ClientConfiguration; import software.amazon.awssdk.transfer.s3.S3TransferManager; import software.amazon.awssdk.transfer.s3.CompletedDownload; import software.amazon.awssdk.transfer.s3.CompletedUpload; import software.amazon.awssdk.transfer.s3.Download; import software.amazon.awssdk.transfer.s3.Upload; import software.amazon.awssdk.transfer.s3.UploadRequest;

Transfer Manager の使用 (プレビュー)

Amazon S3 Transfer Manager のプレビューを使用すると、リクエストごとに 1 つのファイルをアップロードまたはダウンロードできます。

ファイルをアップロードまたはダウンロードするには、まずS3TransferManagerサービスクライアントとして使用するオブジェクト。

デフォルト設定を使用してサービスクライアントをインスタンス化するには、S3TransferManagercreate() メソッドを使用します。

S3TransferManager s3TransferManager = S3TransferManager.create();

リージョンを選択したり、リクエストに特定の認証情報プロバイダーを使用したりするなど、サービスクライアントの設定をカスタマイズするには、S3ClientConfigurationオブジェクトを作成し、その構成をs3ClientConfiguration()サービスクライアントビルダー上のMethod。

Region region = Region.US_WEST_2; S3ClientConfiguration s3ClientConfiguration = S3ClientConfiguration.builder() .region(region) .minimumPartSizeInBytes(10 * MB) .targetThroughputInGbps(20.0) .build(); S3TransferManager s3TransferManager = S3TransferManager.builder() .s3ClientConfiguration(s3ClientConfiguration) .build(); // use the configured s3TransferManager instance

S3 にファイルをアップロードする

にファイルをアップロードするには、以下を行います。Amazon S3Transfer Manager (プレビュー) を使用して、まずPutObjectRequest、指定するAmazon S3を使用したアップロード先のバケットとキーbucket()そしてkey()Methods。次に、次のインスタンスを作成しますUploadRequestオブジェクト、渡すPutObjectRequestを使用したオブジェクトputObjectRequest()Method。source() メソッドを介してファイルへのパスを設定します。次に、を構築しますUploadオブジェクト、渡すUploadRequest経由のオブジェクトupload()Method。

Transfer Manager では、略記 (Java lambda) 法を使用して上記のすべての手順を完了することができるため、必要なのは、アップロードするファイルへのパスと、ファイルのアップロード先とするバケットとキーを指定することだけです。

Upload upload = s3TransferManager.upload(b -> b.putObjectRequest(r -> r.bucket(bucket).key(key)) .source(Paths.get("fileToUpload.txt")));

応答をキャプチャするには、CompletedUploadオブジェクト。

CompletedUpload completedUpload = upload.completionFuture().join(); System.out.println("PutObjectResponse: " + completedUpload.response());

S3 からファイルをダウンロードする

からファイルをダウンロードするにはAmazon S3Transfer Manager (プレビュー) を使用してDownloadオブジェクト。略記法を使用すると、getObjectRequest() メソッドを使用して Amazon S3 バケットとキーを指定し、destination() を使用してファイルを保存する場所を設定できます。

Download download = s3TransferManager.download(b -> b.getObjectRequest(r -> r.bucket(bucket).key(key)) .destination(Paths.get("downloadedFile.txt")));

応答をキャプチャするには、CompletedDownloadオブジェクト。

CompletedDownload completedDownload = download.completionFuture().join(); System.out.println("Content length: "+ completedDownload.response().contentLength());