Class ParallelMultipartDownloaderSubscriber
java.lang.Object
software.amazon.awssdk.services.s3.internal.multipart.ParallelMultipartDownloaderSubscriber
- All Implemented Interfaces:
org.reactivestreams.Subscriber<AsyncResponseTransformer<GetObjectResponse,GetObjectResponse>>
@SdkInternalApi
public class ParallelMultipartDownloaderSubscriber
extends Object
implements org.reactivestreams.Subscriber<AsyncResponseTransformer<GetObjectResponse,GetObjectResponse>>
A subscriber implementation that will download all individual parts for a multipart get-object request in parallel,
concurrently. The amount of concurrent get-object is limited by the
maxInFlightParts configuration. It receives the
individual AsyncResponseTransformer which will be used to perform the individual part requests. These
AsyncResponseTransformer should be able to handle receiving data in parts potentially out of order, For example, the
AsyncResponseTransformer for part 4 might may have any of its callback called before part 1, 2 or 3 if it finishes before. This
is a 'one-shot' class, it should NOT be reused for more than one multipart download.-
Constructor Summary
ConstructorsConstructorDescriptionParallelMultipartDownloaderSubscriber(S3AsyncClient s3, GetObjectRequest getObjectRequest, CompletableFuture<GetObjectResponse> resultFuture, int maxInFlightParts) -
Method Summary
Modifier and TypeMethodDescriptionvoidvoidvoidonNext(AsyncResponseTransformer<GetObjectResponse, GetObjectResponse> asyncResponseTransformer) voidonSubscribe(org.reactivestreams.Subscription s)
-
Constructor Details
-
ParallelMultipartDownloaderSubscriber
public ParallelMultipartDownloaderSubscriber(S3AsyncClient s3, GetObjectRequest getObjectRequest, CompletableFuture<GetObjectResponse> resultFuture, int maxInFlightParts)
-
-
Method Details
-
onSubscribe
public void onSubscribe(org.reactivestreams.Subscription s) - Specified by:
onSubscribein interfaceorg.reactivestreams.Subscriber<AsyncResponseTransformer<GetObjectResponse,GetObjectResponse>>
-
onNext
public void onNext(AsyncResponseTransformer<GetObjectResponse, GetObjectResponse> asyncResponseTransformer) - Specified by:
onNextin interfaceorg.reactivestreams.Subscriber<AsyncResponseTransformer<GetObjectResponse,GetObjectResponse>>
-
onError
- Specified by:
onErrorin interfaceorg.reactivestreams.Subscriber<AsyncResponseTransformer<GetObjectResponse,GetObjectResponse>>
-
onComplete
public void onComplete()- Specified by:
onCompletein interfaceorg.reactivestreams.Subscriber<AsyncResponseTransformer<GetObjectResponse,GetObjectResponse>>
-