Class 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.