首页 > 其他分享 >实战之oss附件批量下载---springboot 实现压缩阿里云oss附件并下载

实战之oss附件批量下载---springboot 实现压缩阿里云oss附件并下载

时间:2024-07-29 11:59:17浏览次数:16  
标签:objectName oss zipOut 附件 new fileUrl response 下载

实战之oss附件批量下载,借鉴网上一些案例,但是没有达到预期效果,结合项目需求。实现远程将oss上的文件进行压缩,并提供给前端用户下载,经过测试完美实现该功能。

@PostMapping("downLoadZip")
    public void downLoadZip(@RequestBody CourseDetailVo detailVo,
                            HttpServletResponse response,
                            @RequestParam(value = "customFileName", required = false, defaultValue = "default.zip") String customFileName) throws IOException {
        List<AttachZipDto> objectNames = detailVo.getZipDtoList();
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
        try (ZipOutputStream zipOut = new ZipOutputStream(byteArrayOutputStream)) {
            for (AttachZipDto objectName : objectNames) {
                String fileUrl = objectName.getFileOssUr();
                String extension = TouUtil.getFileExtension(objectName.getFileOssUr());
                if (fileUrl.startsWith("/")) {
                    fileUrl = fileUrl.substring(1);
                }
                try (InputStream inputStream = ossUtil.getFileInputStream(fileUrl)) {
                    zipOut.putNextEntry(new ZipEntry(objectName.getFileName()+"."+extension));
                    IOUtils.copy(inputStream, zipOut);
                    zipOut.closeEntry();
                } catch (OSSException | IOException e) {
                    // 处理从 OSS 获取文件时发生的异常
                    throw new RuntimeException("Failed to retrieve file from OSS", e);
                }
            }
            // 设置HTTP响应头
            response.setContentType("application/zip");
            response.setHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(customFileName, StandardCharsets.UTF_8.toString()) + "\"");
            // 将压缩文件写入HTTP响应
            try (OutputStream outputStream = response.getOutputStream()) {
                byteArrayOutputStream.writeTo(outputStream);
            }
        } catch (IOException e) {
            // 处理 ZIP 创建或写入响应时的异常
            throw e;
        }

欢迎点赞、转发、收藏。

标签:objectName,oss,zipOut,附件,new,fileUrl,response,下载
From: https://blog.csdn.net/sccd2009/article/details/140766779

相关文章

  • sftp文件上传下载方法
    随着信息化、数字化的发展,企业对数据安全及应用安全意识普遍加强,在数据文件传输过程中,一般建议使用sftp协议进行文件传输,sftp文件操作脚本如下:sftp操作主要有三种方式,分别是sftp客户端操作、sdk操作、操作系统命令操作,针对sdk方式。一、sdk方式:<!--sftp集成jar--><dependen......
  • 2024年中国AI基础数据服务研究报告(附下载)
    点击访问我的技术博客https://ai.weoknow.comhttps://ai.weoknow.com......
  • ossutil命令详解
    ossutil是阿里云提供的一款命令行工具,用于管理和操作阿里云对象存储服务(OSS)。以下是ossutil常用的一些命令和功能:安装和配置安装ossutil:可以从阿里云官网下载对应平台的ossutil安装包https://help.aliyun.com/zh/oss/developer-reference/install-ossutil?spm=a2......
  • 使用 smart_open 从 http 下载 .gz 流并上传到 s3 存储桶
    我想从http流式下载.txt.gz文件并流式上传到s3存储桶,我已经做到了这一点,但它不起作用,我错过了什么?fromsmart_openimportopenassopenchunk_size=(16*1024*1024)http_url='http://someurl'withsopen(http_url,'rb',transport_params={'headers':{�......
  • 鸣潮PC端启动报错全面解析:卡顿、下载卡99%、黑屏、崩溃闪退的解决之道
    《鸣潮》作为一款备受期待的游戏,其独特的玩法和精美的画面吸引了大量玩家。然而,不少玩家在尝试体验这款游戏时,遇到了一系列令人头疼的技术问题,包括启动报错、游戏卡顿、下载进度卡在99%、黑屏、崩溃闪退等。这些问题不仅影响了游戏体验,也让玩家感到沮丧。本文将深入分析这些问......
  • XMind v2024 解锁版下载及安装教程 (全球领先的商业思维导图软件)
    简述XMind是一款专业的全球领先的商业思维导图软件,在国内使用广泛,拥有强大的功能、包括思维管理、商务演示、与办公软件协同工作等功能。它采用全球先进的EclipseRCP软件架构,是集思维导图与头脑风暴于一体的可视化思考工具,能用来捕捉想法、理清思路、管理复杂信息并促进......
  • 中望CAD 机械 v2024 解锁版下载及安装教程 (CAD三维制图)
    简述中望CAD机械版是一款国产CAD制图软件,专为机械设计而打造。中望CAD机械版2024中文版拥有丰富的标准零件图库,提供绘图标准规范,并支持定制化需求。其智能注释功能更是一大亮点,通过一个命令即可完成80%的标注工作,极大提高了绘图效率。一、下载地址下载链接:中望CAD机械......
  • macOS Sequoia 15 beta 4 (24A5298h) ISO、IPSW、PKG 下载
    macOSSequoia15beta4(24A5298h)ISO、IPSW、PKG下载iPhone镜像、Safari浏览器重大更新、备受瞩目的游戏和AppleIntelligence等众多全新功能令Mac使用体验再升级请访问原文链接:https://sysin.org/blog/macOS-Sequoia/,查看最新版。原创作品,转载请保留出处。作者主页......
  • macOS Sequoia 15 beta 4 (24A5298h) Boot ISO 原版可引导镜像下载
    macOSSequoia15beta4(24A5298h)BootISO原版可引导镜像下载iPhone镜像、Safari浏览器重大更新、备受瞩目的游戏和AppleIntelligence等众多全新功能令Mac使用体验再升级请访问原文链接:https://sysin.org/blog/macOS-Sequoia-boot-iso/,查看最新版。原创作品,转载请保......
  • Adobe Photoshop (PS)软件下载(含全版本安装包)
    一、AdobePhotoshop简介AdobePhotoshop(简称PS)是由AdobeSystems公司开发的图像处理软件,它是一款集图像扫描、编辑修改、图像制作、广告创意、图像输入与输出于一体的图形图像处理软件。广泛应用于专业测评、平面设计、广告摄影、影像创意、网页制作、后期修饰、视觉创意、......