Class BlockingInputStreamAsyncRequestBody

java.lang.Object
software.amazon.awssdk.core.async.BlockingInputStreamAsyncRequestBody
All Implemented Interfaces:
org.reactivestreams.Publisher<ByteBuffer>, AsyncRequestBody, SdkPublisher<ByteBuffer>

public final class BlockingInputStreamAsyncRequestBody extends Object implements AsyncRequestBody
An implementation of AsyncRequestBody that allows performing a blocking write of an input stream to a downstream service.

See AsyncRequestBody.forBlockingInputStream(Long).

  • Method Details

    • builder

      Creates a default builder for BlockingInputStreamAsyncRequestBody.
    • contentLength

      public Optional<Long> contentLength()
      Specified by:
      contentLength in interface AsyncRequestBody
      Returns:
      The content length of the data being produced.
    • contentType

      public String contentType()
      Specified by:
      contentType in interface AsyncRequestBody
      Returns:
      The content type of the data being produced.
    • writeInputStream

      public long writeInputStream(InputStream inputStream)
      Block the calling thread and write the provided input stream to the downstream service.

      This method will block the calling thread immediately. This means that this request body should usually be passed to the SDK before this method is called.

      This method will return the amount of data written when the entire input stream has been written. This will throw an exception if writing the input stream has failed.

      You can invoke cancel() to cancel any blocked write calls to the downstream service (and mark the stream as failed).

    • cancel

      public void cancel()
      Cancel any running write (and mark the stream as failed).
    • subscribe

      public void subscribe(org.reactivestreams.Subscriber<? super ByteBuffer> s)
      Specified by:
      subscribe in interface org.reactivestreams.Publisher<ByteBuffer>