public DataBlockIndex get(int index) {
            if (index < 0 || index >= count) {
                throw new IllegalArgumentException("index" + index + " is out of range [0, " + count + ")");
            }
            int base = index * INDEX_BLOCK_UNIT_SIZE;
            long streamId = buf.getLong(base);
            long startOffset = buf.getLong(base + 8);
            int endOffsetDelta = buf.getInt(base + 16);
            int recordCount = buf.getInt(base + 20);
            long blockPosition = buf.getLong(base + 24);
            int blockSize = buf.getInt(base + 32);
            return new DataBlockIndex(index, streamId, startOffset, endOffsetDelta, recordCount, blockPosition, blockSize);
        }
@param dataBlockSize The total size of the data blocks, which equals to index start position.
@param indexBlock    raw index data.
s3stream/src/main/java/com/automq/stream/s3/ObjectReader.java