Class ChecksumValidatingInputStream

java.lang.Object
java.io.InputStream
software.amazon.awssdk.core.internal.io.ChecksumValidatingInputStream
All Implemented Interfaces:
Closeable, AutoCloseable, Abortable

public class ChecksumValidatingInputStream extends InputStream implements Abortable
Stream that will update the Checksum as the data is read. When end of the stream is reached the computed Checksum is validated with Expected checksum.
  • Constructor Details

    • ChecksumValidatingInputStream

      public ChecksumValidatingInputStream(InputStream inputStream, SdkChecksum sdkChecksum, String expectedChecksum)
      Creates an input stream using the specified Checksum, input stream, and length.
      Parameters:
      inputStream - the input stream
      sdkChecksum - the Checksum implementation
      expectedChecksum - the checksum value as seen un .
  • Method Details

    • read

      public int read() throws IOException
      Reads from the underlying stream. If the end of the stream is reached, the running checksum will be appended a byte at a time (1 per read call).
      Specified by:
      read in class InputStream
      Returns:
      byte read, if eos has been reached, -1 will be returned.
      Throws:
      IOException
    • read

      public int read(byte[] buf, int off, int len) throws IOException
      Reads up to len bytes at a time from the input stream, updates the checksum. If the end of the stream has been reached the checksum will be appended to the last 4 bytes.
      Overrides:
      read in class InputStream
      Parameters:
      buf - buffer to write into
      off - offset in the buffer to write to
      len - maximum number of bytes to attempt to read.
      Returns:
      number of bytes written into buf, otherwise -1 will be returned to indicate eos.
      Throws:
      IOException
    • reset

      public void reset() throws IOException
      Resets stream state, including the running checksum.
      Overrides:
      reset in class InputStream
      Throws:
      IOException
    • abort

      public void abort()
      Description copied from interface: Abortable
      Aborts the execution of the task. Multiple calls to abort or calling abort an already aborted task should return without error.
      Specified by:
      abort in interface Abortable
    • close

      public void close() throws IOException
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Overrides:
      close in class InputStream
      Throws:
      IOException