Crie e transmita um arquivo grande sem armazená-lo na memória ou no disco

Quero permitir que os usuários façam download de um arquivo de vários arquivos grandes de uma só vez. No entanto, os arquivos e o arquivo podem ser grandes demais para serem armazenados na memória ou no disco do meu servidor (eles são transmitidos de outros servidores em tempo real). Eu gostaria de gerar o arquivo como eu transmitir para o usuário.

Eu posso usar Tar ou Zip ou o que for mais simples. Eu estou usando o django, que me permite retornar um gerador ou um objeto semelhante a um arquivo na minha resposta. Este objeto pode ser usado para bombear o processo. No entanto, estou tendo problemas para descobrir como criar esse tipo de coisa em torno das bibliotecas zipfile ou tarfile, e tenho medo de que elas não suportem a leitura de arquivos durante a leitura ou a leitura do archive à medida que ele é construído.

Esta resposta emconvertendo um iterador em um objeto semelhante a um arquivo pode ajudar.tarfile#addfile leva um iterável, mas parece passar imediatamente parashutil.copyfileobj, então isso pode não ser tão amigável ao gerador como eu esperava.

questionAnswers(4)

yourAnswerToTheQuestion