我想允许用户一次下载多个大文件的存档.但是,文件和存档可能太大而无法存储在我的服务器的内存或磁盘上(它们可以动态地从其他服务器流入).当我将其传输给用户时,我想生成存档.我可以使用Tar或Zip或其他最简单的东西...

我想允许用户一次下载多个大文件的存档.但是,文件和存档可能太大而无法存储在我的服务器的内存或磁盘上(它们可以动态地从其他服务器流入).当我将其传输给用户时,我想生成存档.
我可以使用Tar或Zip或其他最简单的东西.我正在使用django,它允许我在我的响应中返回一个生成器或类文件对象.该对象可用于泵送过程.但是,我无法弄清楚如何围绕zipfile或tarfile库构建这种东西,我担心它们可能不支持读取文件,或者在构建时读取存档.
这个答案在converting an iterator to a file-like object可能会有所帮助. tarfile #addfile采用可迭代的,但它似乎立即将其传递给shutil.copyfileobj,因此这可能不像我希望的那样对生成器友好.
解决方法:
我最终使用了SpiderOak ZipStream.
本文标题为:python – 创建并流式传输大型存档,而不将其存储在内存或磁盘上


基础教程推荐
- Python数据提取-lxml模块 2023-08-11
- centos 服务器安装python 2.7.15 2023-09-05
- 进程与子进程(python3入门) 2023-09-04
- Python爬取几千条相亲文案 2023-08-04
- python分析inkscape路径数据方案简单介绍 2022-10-20
- 详解Pytorch中的tensor数据结构 2022-10-20
- linux中使用Python对图片进行批量命名 2023-08-11
- python进程和线程 2023-09-03
- pandas学习之df.set_index的具体使用 2022-08-30
- windows下面使用多版本Python安装指定版本的虚拟环境 2023-09-04