我需要允许用户通过我的Django应用程序在S3上下载整个文件夹的内容。
通常,我想创建一个zip文件(使用从boto3检索的文件),然后将其作为响应发送回去。 This great blog post from botree shows how。
但是,这可能是大量数据,并且这些代码(作为中间步骤)将所有这些代码(存储在内存中,或经过某种修改,存储在HDD上)全部存储在我的服务器上。
我不想在S3上存储经过预处理的zip文件,因为这会大大增加存储成本(以及需要频繁的任务运行者对其进行更新),并且我不能简单地存储zip而不是存储文件夹,因为其他S3集成和版本控制。
问题
我读过有关StreamingHttpResponse的内容,我在其中逐渐增加字节,因为它们是在响应中计算出来的,但从未使用过。在这种情况下,我可以这样做吗(例如,追加从AWS提取的字节?),如果可以,怎么办?
注意:它不一定是.zip
,如果可以的话可以是.tar.gz
或类似名称!