0
asyncio를 사용하여 네트워크를 통해 큰 로그 파일을 스트리밍하고 싶습니다. 데이터베이스에서 데이터를 검색하여 형식을 지정하고 python의 zlib을 사용하여 압축 한 다음 네트워크를 통해 스트리밍합니다.파이썬에서 즉시 gzip을 스트리밍하는 방법은 무엇입니까?
다음는 기본적으로 내가 사용하는 코드입니다 :
@asyncio.coroutine
def logs(requests):
# ...
yield from resp.prepare(request)
# gzip magic number and compression format
resp.write(b'\x1f\x8b\x08\x00\x00\x00\x00\x00')
compressor = compressobj()
for row in rows:
ip, uid, date, url, answer, volume = row
NCSA_ROW = '{} {} - [{}] "GET {} HTTP/1.0" {} {}\n'
row = NCSA_ROW.format(ip, uid, date, url, answer, volume)
row = row.encode('utf-8')
data = compressor.compress(row)
resp.write(data)
resp.write(compressor.flush())
return resp
내가 gunzip을 함께 다음과 같은 오류 인상 zcat 열 수 없습니다 검색 파일 : (
이gzip: out.gz: unexpected end of file