Class ChecksumValidatingInputStream
java.lang.Object
java.io.InputStream
software.amazon.awssdk.core.internal.io.ChecksumValidatingInputStream
- All Implemented Interfaces:
Closeable
,AutoCloseable
,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 Summary
ConstructorsConstructorDescriptionChecksumValidatingInputStream
(InputStream inputStream, SdkChecksum sdkChecksum, String expectedChecksum) Creates an input stream using the specified Checksum, input stream, and length. -
Method Summary
Modifier and TypeMethodDescriptionvoid
abort()
Aborts the execution of the task.void
close()
int
read()
Reads from the underlying stream.int
read
(byte[] buf, int off, int len) Reads up to len bytes at a time from the input stream, updates the checksum.void
reset()
Resets stream state, including the running checksum.Methods inherited from class java.io.InputStream
available, mark, markSupported, read, skip
-
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 streamsdkChecksum
- the Checksum implementationexpectedChecksum
- the checksum value as seen un .
-
-
Method Details
-
read
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 classInputStream
- Returns:
- byte read, if eos has been reached, -1 will be returned.
- Throws:
IOException
-
read
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 classInputStream
- Parameters:
buf
- buffer to write intooff
- offset in the buffer to write tolen
- 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
Resets stream state, including the running checksum.- Overrides:
reset
in classInputStream
- 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. -
close
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Overrides:
close
in classInputStream
- Throws:
IOException
-