Class LengthCheckInputStream

java.lang.Object
java.io.InputStream
java.io.FilterInputStream
com.amazonaws.internal.SdkFilterInputStream
com.amazonaws.util.LengthCheckInputStream
All Implemented Interfaces:
com.amazonaws.internal.MetricAware, com.amazonaws.internal.Releasable, Closeable, AutoCloseable

public class LengthCheckInputStream extends com.amazonaws.internal.SdkFilterInputStream
Used to perform length check to ensure the number of bytes read from the underlying input stream is the same as the expected total.
  • Field Details

    • INCLUDE_SKIPPED_BYTES

      public static final boolean INCLUDE_SKIPPED_BYTES
      See Also:
    • EXCLUDE_SKIPPED_BYTES

      public static final boolean EXCLUDE_SKIPPED_BYTES
      See Also:
  • Constructor Details

    • LengthCheckInputStream

      public LengthCheckInputStream(InputStream in, long expectedLength, boolean includeSkipped)
      Constructs an input stream that performs length check to ensure the number of bytes read from the underlying input stream is the same as the expected total.
      Parameters:
      in - the underlying input stream
      expectedLength - the total length of the data in bytes expected to be read from the underlying input stream; must be non-negative.
      includeSkipped - true if bytes skipped are to be considered as part of the data length; false otherwise. Typically, this parameter should be set to false for uploading data to AWS, but set to true for receiving data from AWS.
  • Method Details

    • read

      public int read() throws IOException
      Overrides:
      read in class com.amazonaws.internal.SdkFilterInputStream
      Throws:
      AmazonClientException - if the data length read has exceeded the expected total, or if the total data length is not the same as the expected total.
      IOException
    • read

      public int read(byte[] b, int off, int len) throws IOException
      Overrides:
      read in class com.amazonaws.internal.SdkFilterInputStream
      Throws:
      AmazonClientException - if the data length read has exceeded the expected total, or if the total data length is not the same as the expected total.
      IOException
    • mark

      public void mark(int readlimit)
      Overrides:
      mark in class com.amazonaws.internal.SdkFilterInputStream
    • reset

      public void reset() throws IOException
      Overrides:
      reset in class com.amazonaws.internal.SdkFilterInputStream
      Throws:
      IOException
    • skip

      public long skip(long n) throws IOException
      Overrides:
      skip in class com.amazonaws.internal.SdkFilterInputStream
      Throws:
      AmazonClientException - if includeSkipped is true and the data length skipped has exceeded the expected total.
      IOException