@Override
    public int read(byte[] arg0, int arg1, int arg2) throws IOException {
        abortIfNeeded();
        int count = fis.read(arg0, arg1, arg2);
        bytesReadPastMarkPoint += count;
        return count;
    }
Resets the input stream to the last mark point, or the beginning of the
stream if there is no mark point, by creating a new FileInputStream based
on the underlying file.

@throws IOException
            when the FileInputStream cannot be re-created.
aws-java-sdk-s3/src/main/java/com/amazonaws/services/s3/internal/RepeatableFileInputStream.java