@Override
    public void close() throws IOException {
      if (isOpen.compareAndSet(true, false)) {
        if (numChunksWrittenOut.get() != numChunksTotal) {
          setOperationException(new RouterException(
              "The ReadableStreamChannel for blob data has been closed by the user before all chunks were written out.",
              RouterErrorCode.ChannelClosed));
        }
        releaseResource();
      }
    }
The bytes that will be read from this channel is not known until the read is complete.
@return -1
ambry-router/src/main/java/com/github/ambry/router/GetBlobOperation.java