使用Django / AWS S3压缩并以流形式下载文件

时间:2019-05-14 11:11:00

标签: django amazon-web-services amazon-s3 zip gzip

我需要允许用户通过我的Django应用程序在S3上下载整个文件夹的内容。

通常,我想创建一个zip文件(使用从boto3检索的文件),然后将其作为响应发送回去。 This great blog post from botree shows how

但是,这可能是大量数据,并且这些代码(作为中间步骤)将所有这些代码(存储在内存中,或经过某种修改,存储在HDD上)全部存储在我的服务器上。

我不想在S3上存储经过预处理的zip文件,因为这会大大增加存储成本(以及需要频繁的任务运行者对其进行更新),并且我不能简单地存储zip而不是存储文件夹,因为其他S3集成和版本控制。

问题

我读过有关StreamingHttpResponse的内容,我在其中逐渐增加字节,因为它们是在响应中计算出来的,但从未使用过。在这种情况下,我可以这样做吗(例如,追加从AWS提取的字节?),如果可以,怎么办?

注意:它不一定是.zip,如果可以的话可以是.tar.gz或类似名称!

0 个答案:

没有答案