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 themaxInFlightPartsconfiguration. It receives the individualAsyncResponseTransformerwhich 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
Constructors Constructor Description ParallelMultipartDownloaderSubscriber(S3AsyncClient s3, GetObjectRequest getObjectRequest, CompletableFuture<GetObjectResponse> resultFuture, int maxInFlightParts)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidonComplete()voidonError(Throwable t)voidonNext(AsyncResponseTransformer<GetObjectResponse,GetObjectResponse> asyncResponseTransformer)voidonSubscribe(org.reactivestreams.Subscription s)
-
-
-
Constructor Detail
-
ParallelMultipartDownloaderSubscriber
public ParallelMultipartDownloaderSubscriber(S3AsyncClient s3, GetObjectRequest getObjectRequest, CompletableFuture<GetObjectResponse> resultFuture, int maxInFlightParts)
-
-
Method Detail
-
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
public void onError(Throwable t)
- Specified by:
onErrorin interfaceorg.reactivestreams.Subscriber<AsyncResponseTransformer<GetObjectResponse,GetObjectResponse>>
-
onComplete
public void onComplete()
- Specified by:
onCompletein interfaceorg.reactivestreams.Subscriber<AsyncResponseTransformer<GetObjectResponse,GetObjectResponse>>
-
-