parent
d091e74d56
commit
21480f90de
|
@ -3,7 +3,7 @@ import sys
|
||||||
import ssl
|
import ssl
|
||||||
import socket
|
import socket
|
||||||
|
|
||||||
from gzip import GzipFile
|
import zlib
|
||||||
from io import BytesIO, StringIO
|
from io import BytesIO, StringIO
|
||||||
import re
|
import re
|
||||||
import chardet
|
import chardet
|
||||||
|
@ -100,22 +100,9 @@ class SizeLimitHandler(BaseHandler):
|
||||||
https_response = http_response
|
https_response = http_response
|
||||||
|
|
||||||
|
|
||||||
def UnGzip(cprss, CHUNKSIZE=64*1024): # the bigger the CHUNKSIZE, the faster
|
def UnGzip(data):
|
||||||
" Supports truncated files "
|
" Supports truncated files "
|
||||||
gz = GzipFile(fileobj=cprss, mode='rb')
|
return zlib.decompressobj(zlib.MAX_WBITS | 32).decompress(data)
|
||||||
|
|
||||||
data = b''
|
|
||||||
chunk = gz.read(CHUNKSIZE)
|
|
||||||
|
|
||||||
try:
|
|
||||||
while chunk:
|
|
||||||
data += chunk
|
|
||||||
chunk = gz.read(CHUNKSIZE)
|
|
||||||
|
|
||||||
except (IOError, EOFError):
|
|
||||||
pass
|
|
||||||
|
|
||||||
return data
|
|
||||||
|
|
||||||
|
|
||||||
class GZIPHandler(BaseHandler):
|
class GZIPHandler(BaseHandler):
|
||||||
|
@ -128,7 +115,7 @@ class GZIPHandler(BaseHandler):
|
||||||
if resp.headers.get('Content-Encoding') == 'gzip':
|
if resp.headers.get('Content-Encoding') == 'gzip':
|
||||||
data = resp.read()
|
data = resp.read()
|
||||||
|
|
||||||
data = UnGzip(BytesIO(data))
|
data = UnGzip(data)
|
||||||
|
|
||||||
resp.headers['Content-Encoding'] = 'identity'
|
resp.headers['Content-Encoding'] = 'identity'
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue