code: function ChunkStream(options) {
    stream.Stream.call(this);
    this.writable = this.readable = true;
  
    if (!options) {
      options = {};
    }
  
    this._highWaterMark = options.highWaterMark || bufferSize;
  
    this._paused = undefined; //True/false is the external status from users.
  
    this._isStreamOpened = false;
    this._offset = 0;
    this._allocator = options.allocator;
    this._streamEnded = false;
    this._md5hash = null;
    this._buffer = null;
    this._internalBufferSize = 0;
    this._outputLengthLimit = 0;
    this._md5sum = undefined;
  
    if (options.calcContentMd5) {
      this._md5hash = new Md5Wrapper().createMd5Hash();
    }
  }
docs: Chunk stream
  1. Calculate md5
  2. Track reading offset
  3. Work with customize memory allocator
  4. Buffer data from stream.
  @param {object} options stream.Readable options