Cree y transmita un archivo grande sin almacenarlo en la memoria o en el disco

Quiero permitir que los usuarios descarguen un archivo de varios archivos grandes a la vez. Sin embargo, los archivos y el archivo pueden ser demasiado grandes para almacenar en la memoria o en el disco de mi servidor (se transmiten desde otros servidores sobre la marcha). Me gustaría generar el archivo mientras lo transmito al usuario.

Puedo usar Tar o Zip o lo que sea más simple. Estoy usando django, que me permite devolver un generador o un objeto similar a un archivo en mi respuesta. Este objeto podría ser utilizado para bombear el proceso a lo largo. Sin embargo, estoy teniendo problemas para descubrir cómo construir este tipo de cosas alrededor de las bibliotecas zipfile o tarfile, y me temo que es posible que no admitan la lectura de archivos a medida que avanzan, o la lectura del archivo a medida que se construye.

Esta respuesta enconvertir un iterador en un objeto similar a un archivo podría ayudar.tarfile#addfile toma un iterable, pero parece que pasa de inmediato ashutil.copyfileobj, así que esto puede no ser tan amigable para los generadores como esperaba.

Respuestas a la pregunta(4)

Su respuesta a la pregunta