торнадо - как вернуть tar.gz из обработчика торнадо - PullRequest
0 голосов
/ 27 февраля 2019

Я пытаюсь вернуть созданный мной файл tar.gz (используя библиотеку tarfile) из обработчика сервера GET tornado, чтобы позже я мог использовать его как new File([test.tar.gz]) из моего клиента.Я использую код ниже, но это возвращает двоичный файл tarfile, а не сам файл.Я также попытался с self.set_header('Content-Type', 'application/gzip'), который, похоже, возвращает tar-файл без какого-либо сжатия.

@json_errors
@web.authenticated
@gen.coroutine
def get(self):
    self.set_header('Content-Type', 'application/octet-stream')

    with open('test.tar.gz', "rb") as f:
        try:
            while True:
                _buffer = f.read(4096)
                if _buffer:
                    self.write(_buffer)
                else:
                    f.close()
                    self.finish()
                    return
        except:
            raise HTTPError(404)
    raise HTTPError(500)

Любая помощь будет отличной ...

...