code: def get_object2(self, mpath, path=None, accept="*/*"):
          
          log.debug('GetObject %r', mpath)
          headers = {"Accept": accept}
  
          res, content = self._request(mpath, "GET", headers=headers)
          if res["status"] not in ("200", "304"):
              raise errors.MantaAPIError(res, content)
          if len(content) != int(res["content-length"]):
              raise errors.MantaError("content-length mismatch: expected %d, "
                                      "got %s" %
                                      (res["content-length"], content))
          if res.get("content-md5"):
              md5 = hashlib.md5(content)
              content_md5 = base64.b64encode(md5.digest()).decode("utf-8")
              if content_md5 != res["content-md5"]:
                  raise errors.MantaError("content-md5 mismatch: expected %s, "
                                          "got %s" %
                                          (res["content-md5"], content_md5))
          if path is not None:
              f = io.open(path, 'wb')
              try:
                  f.write(content)
              finally:
                  f.close()
              return (res, None)
          else:
              return (res, content)
docs: A lower-level version of `get_object` that returns the
          response object (which includes the headers).
  
          ...
          @returns (res, content) {2-tuple} `content` is None if `path` was
              provided