翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon S3 Transfer Manager のバージョン 1 からバージョン 2 への変更
このトピックでは、Amazon S3 Transfer Manager のバージョン 1 (v1) からバージョン 2 (v2) への変更点について詳しく説明します。
高レベル変更
変更 | v1 | v2 |
---|---|---|
Maven の依存関係 |
|
|
パッケージ名 | com.amazonaws.services.s3.transfer |
software.amazon.awssdk.transfer.s3 |
Class name |
1 最新バージョン
設定 API の変更
設定 | v1 | v2 |
---|---|---|
(ビルダーを入手する) |
|
|
S3 クライアント |
|
|
エグゼキュター |
|
|
スレッドプールをシャットダウンする |
|
サポート外。指定されたエグゼキューターは、S3TransferManager が閉じられたときにシャットダウンされません。 |
最小アップロードパートサイズ |
|
|
マルチパートアップロードのしきい値 |
|
|
最小コピーパーツサイズ |
|
|
マルチパートコピーのしきい値 |
|
|
並列ダウンロードを無効にする |
|
標準 Java ベースの S3 クライアントを転送マネージャに渡して、並列ダウンロードを無効にします。
|
常にマルチパート md5 を計算する |
|
サポート外。 |
動作の変更
並列転送には AWS CRT ベースの S3 クライアントが必要です
SDK for Java 2.x では、自動並列転送機能 (マルチパートアップロード/ダウンロード) が AWS CRT ベースの S3 クライアントから利用できます。並列転送機能を有効にするには、パフォーマンスを最大化するために AWS
共通ランタイム (CRT) ライブラリ
AWS CRT ベースの S3 クライアントだけが使用せずにS3TransferManager
並列転送のパフォーマンスを最大化します。v2 S3TransferManager
には、ファイルやディレクトリの転送を容易にする追加の APIs が用意されています。
S3TransferManager
が並列転送を実行する機能は、 S3TransferManager
の開始方法と、 AWS Common Runtime (CRT) ライブラリが依存関係として宣言されているかどうかによって異なります。
次の表は、 AWS CRT が依存関係として宣言されているかどうかにかかわらず、S3TransferManager
v2 の 3 つの初期化シナリオを示しています。
S3TransferManager v2 初期化アプローチ | AWS CRT は依存関係として宣言されていますか? | |
---|---|---|
はい | いいえ | |
静的作成メソッド:
- または - ビルダーメソッド:
|
![]() 自動並列転送が有効 |
![]() 自動並列転送が無効 |
crt* () ビルダーメソッドのいずれかで構築された
- または -
|
![]() 自動並列転送が有効 |
![]() ランタイムエラー |
標準ビルダーメソッドのいずれかで構築された
- または -
|
![]() 自動並列転送が無効 |
![]() 自動並列転送が無効 |
バイト範囲フェッチによる並列ダウンロード
自動並列転送機能が有効になっている場合、S3 Transfer Manager v2 はバイト範囲フェッチを使用してオブジェクトの特定の部分を並列して取得します (マルチパートダウンロード)。v2 でのオブジェクトのダウンロード方法は、オブジェクトが最初にアップロードされた方法には依存しません。すべてのダウンロードで、高いスループットと同時実行性のメリットが得られます。
これとは対照的に、S3 Transfer Manager v1 では、オブジェクトが最初にどのようにアップロードされたかが問題になります。S3 Transfer Manager v1 は、パーツがアップロードされたのと同じ方法でオブジェクトの一部を取得します。オブジェクトが元々単一のオブジェクトとしてアップロードされた場合、S3 Transfer Manager v1 はサブリクエストを使用してダウンロードプロセスを高速化することはできません。
失敗動作
S3 Transfer Manager v1 では、いずれかのサブリクエストが失敗すると、ディレクトリ転送リクエストは失敗します。v1 とは異なり、S3 Transfer Manager v2 から返される Future は、一部のサブリクエストが失敗しても正常に完了します。
そのため、Future が正常に完了した場合でも、CompletedDirectoryDownload.failedTransfers()
CompletedDirectoryUpload.failedTransfers()