当前位置: 首页 > article >正文

Django压缩包形式下载文件

通过web将minio上的文件以压缩包-文件夹-文件的形式下载到本地

import os
from bx_mes import settings
from io import BytesIO
import zipfile
from django.http import StreamingHttpResponse
class FileRemote(GenericAPIView):def post(self,request):# 压缩包名folder_name = "bx_folder1" # minio的urlfile_list = [{"folder1":["2025/03/31/6e1740680ddc11f095c444a191981b27/23.pdf","2025/03/31/a13eb27c0dd811f095bb44a191981b27/mes测试进度统计.txt"]},{"folder2":["2025/04/16/2dbc67321a7511f0992e44a191981b27/mes_test.pdf"]}]zip_buffer = BytesIO()with zipfile.ZipFile(zip_buffer, 'w', zipfile.ZIP_DEFLATED) as zip_file:for folder_key in file_list:for folder in folder_key:for file in folder_key[folder]:# minio获取文件obj = MinioClass.remate_file(file)# 创建文件夹zip_path = os.path.join(folder, file.split('/')[4])zip_file.writestr(zip_path, obj.read())zip_buffer.seek(0)response = StreamingHttpResponse(zip_buffer,content_type='application/zip')response['Content-Disposition'] = f'attachment; filename="{folder_name}.zip"'return response

上述minio获取文件的函数 

def remate_file(cls,file_route):

        obj = minioClient.get_object(config.FILE_BUCKETS,file_route)

        return obj

config.FILE_BUCKETS   settings  中minio的配置桶名 

http://www.lryc.cn/news/2386844.html

相关文章:

  • 晚期NSCLC临床试验终点与分析策略
  • 从比分滚动到数据革命:体育数据如何重构我们的观赛体验?
  • 华为网路设备学习-23(路由器OSPF-LSA及特殊详解 二)
  • VPet虚拟桌宠,一款桌宠软件,支持各种互动投喂等. 开源免费并且支持创意工坊
  • 新书速览|ASP.NET MVC高效构建Web应用
  • MySQL 9.3 超详细下载安装教程(Windows版)附图文说明
  • Linux之软件包管理器(CentOS系统) —— yum
  • webpack吐环境分析
  • Unity InputField 滑动滚轮 实现对文本的滚动
  • 机械设计插件
  • Monorepo 管理
  • RabbitMQ核心机制——延迟队列
  • 华为云Flexus+DeepSeek征文|Flexus云服务器Dify-LLM资源部署极致体验Agent
  • IP 网段
  • 芋道框架 - 接口设置匿名访问
  • 熔盐核裂变反应堆:第四代核能技术的重要突破
  • 鸿蒙OSUniApp 实现的日期选择器与时间选择器组件#三方框架 #Uniapp
  • Linux云计算训练营笔记day16(Linux周期性计划任务、Python)
  • 对比Redis与向量数据库(如Milvus)在AI中的应用
  • 【Elasticsearch入门到落地】13、DSL查询详解:分类、语法与实战场景
  • [欠拟合过拟合]机器学习-part10
  • 【windwos】文本编辑器Notepad++ 替代品Notepad--
  • Linux基本指令篇 —— clear指令
  • Anaconda 的基础教程,从入门到精通
  • 阿里云DDoS防护:万一被“黑”了,如何更换IP地址?
  • 机器学习笔记【Week2】
  • 饭卡管理系统(接口文档)
  • 【小白量化智能体】应用2:编写通达信绘图指标及生成Python绘图程序
  • C++23 std::start_lifetime_as:用于隐式生存期类型的显式生存期管理函数 (P2590R2)
  • 总结:进程和线程的联系和区别