add file like object, it will be add to tar file later

        :param fname: name in tar file
        :param fcontent: content. bytes, string, BytesIO or StringIO

def add_fileobj(self, fname, fcontent):
        """add file like object, it will be add to tar file later

        :param fname: name in tar file
        :param fcontent: content. bytes, string, BytesIO or StringIO
        """
        tar_info = tarfile.TarInfo(fname)
        if isinstance(fcontent, io.BytesIO):
            tar_info.size = len(fcontent.getvalue())
        elif isinstance(fcontent, io.StringIO):
            tar_info.size = len(fcontent.getvalue())
            fcontent = io.BytesIO(fcontent.getvalue().encode("utf8"))
        else:
            if hasattr(fcontent, "readable"):
                fcontent = fcontent
            tar_info.size = len(fcontent)
            if isinstance(fcontent, str):
                fcontent = fcontent.encode("utf8")
            fcontent = io.BytesIO(fcontent)
        self._ios_to_add[tar_info] = fcontent