code: def _fill_buf(self):
      resp = self._make_range_request()
      if resp is None:
          return None
      code = str(resp["ResponseMetadata"]["HTTPStatusCode"])
      if code[0] == "2":
          data = resp["Body"].read()
          if data:
              buf = BytesIO(self._tail + data)
              self._pos += len(data)
              self._tail = b""
              return buf
          else:
              return None
      elif code[0] == "5":
          return None
      else:
          raise Exception(
              "Retrieving %s/%s failed: %s"
              % (self._bucket, self._key, code)
          )
  
file_path: metaflow/metaflow/plugins/datatools/s3/s3tail.py
imports: from io import BytesIO
  from .s3util import aws_retry, get_s3_client
label_desc: Use image node_id 8 for calling the S3Tail obj's underlying member method code with example usage: obj._fill_buf() and returns: None, buf, None, None