def __init__(self, url, name=None, requests_session=None, timeout=30):
IOBase.__init__(self)
self.url = url
self.sess = requests_session if requests_session is not None else requests.session()
self._seekable = False
self.timeout = timeout
f = self.sess.head(url, headers={'Range': 'bytes=0-'}, timeout=timeout)
if f.status_code == 206 and 'Content-Range' in f.headers:
self._seekable = True
self.len = int(f.headers["Content-Length"])
if name is None:
if "Content-Disposition" in f.headers:
value, params = cgi.parse_header(f.headers["Content-Disposition"])
if "filename" in params:
self.name = params["filename"]
else:
self.name = name
f.close()
self._pos = 0
self._r = None
评论列表
文章目录