code: def _get_segment(self, start, request_size, check_response=True):
      
      end = start + request_size - 1
      content_range = '%d-%d' % (start, end)
      headers = {'Range': 'bytes=' + content_range}
      status, resp_headers, content = yield self._api.get_object_async(
          self._path, headers=headers)
      def _checker():
        errors.check_status(status, [200, 206], self._path, headers,
                            resp_headers, body=content)
        self._check_etag(resp_headers.get('etag'))
      if check_response:
        _checker()
        raise ndb.Return(content)
      raise ndb.Return(content, _checker)
docs: Get a segment of the file from Google Storage.
  
      Args:
        start: start offset of the segment. Inclusive. Have to be within the
          range of the file.
        request_size: number of bytes to request. Have to be small enough
          for a single urlfetch request. May go over the logical range of the
          file.
        check_response: True to check the validity of GCS response automatically
          before the future returns. False otherwise. See Yields section.
  
      Yields:
        If check_response is True, the segment [start, start + request_size)
        of the file.
        Otherwise, a tuple. The first element is the unverified file segment.
        The second element is a closure that checks response. Caller should
        first invoke the closure before consuing the file segment.
  
      Raises:
        ValueError: if the file has changed while reading.