java通过minio下载pdf附件

embedded/2024/12/23 5:54:40/

javaminiopdf_0">java通过minio下载pdf附件


文章目录

  • java通过minio下载pdf附件
  • 一、java通过minio下载pdf附件getObject方法


javaminiopdfgetObject_11">一、java通过minio下载pdf附件getObject方法

java"> @Resourceprivate MinioClient minioClient;/*** 通过minio下载pdf附件* @param fileName:"sdgregrtgfr.pdf"   为存储在minio中的重命名文件名* @param originalName:"Java学习文档.pdf"   为实际文件名* @param response* @throws IOException*/public void getObject(String fileName,String originalName, HttpServletResponse response) throws IOException {InputStream inputStream = null;OutputStream outputStream = null;try {String filePath = "/";//在minio中存储的路径GetObjectArgs build = GetObjectArgs.builder().bucket("桶名").object(filePath + fileName).build();inputStream = minioClient.getObject(build);response.setContentType("application/pdf;charset=utf-8");response.setCharacterEncoding("utf-8");String encodedFileName = URLEncoder.encode(originalName, "UTF-8").replace("+", "%20");response.setHeader("Content-disposition", "attachment;filename=\"" + encodedFileName + "\"");outputStream = response.getOutputStream();byte[] buffer = new byte[4096];int bytesRead;while ((bytesRead = inputStream.read(buffer)) != -1) {outputStream.write(buffer, 0, bytesRead);}} catch (Exception e) {// 处理异常e.printStackTrace();throw new BizException("附件下载失败,请重试");} finally {inputStream.close();outputStream.close();}}

http://www.ppmy.cn/embedded/1772.html

相关文章

LeetCode 面试题 02.07. 链表相交

LeetCode 面试题 02.07. 链表相交 1、题目 力扣题目链接:面试题 02.07. 链表相交 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。 图示两个链表在节点 c1 开始相交…

阿里云2核2G服务器可以干什么?

阿里云2核2G服务器可以干什么?2核2G云服务器可以用来搭建网站、爬虫、邮件服务器、接口服务器、个人博客、企业官网、数据库应用、大数据计算、AI人工智能、论坛、电子商务、AI、LLM大语言模型、测试环境等,目前2核2G阿里云服务器61元一年,老…

简述Kafka的高可靠性

什么叫可靠性? 大家都知道,系统架构有三高:「高性能、高并发和高可用」,三者的重要性不言而喻。 对于任意系统,想要同时满足三高都是一件非常困难的事情,大型业务系统或者传统中间件都会搭建复杂的架构来…

webSocket + springboot+vue3用法

领导安排个任务&#xff0c;大屏显示数据&#xff0c;要与后台数据一致&#xff0c;所以用到了websocket&#xff0c;涉及的前后端代码整理如下&#xff0c;希望对大家有所帮助。 后端代码 pom文件添加依赖 <!--websocket依赖--> <dependency><groupId>or…

数据库-Redis(17)

目录 81.什么是Redis Cluster&#xff1f; 82.说说Redis哈希槽的概念&#xff1f;为什么是16384个&#xff1f; 83.Redis集群会有写操作丢失吗&#xff1f;为什么&#xff1f; 84.Redis客户端有哪些&#xff1f; 85.Redis如何做大数据量插入&#xff1f; 81.什么是Redis C…

Unity - ScrollView被内部的IDragHandler等接口对象阻挡滑动问题

原因&#xff1a;滑动冲突&#xff0c;内部的Image会阻挡Input 解决办法&#xff1a; 在内部的onDrag、onBeginDrag、onEndDrag内主动调用 GameObject.Find("Scroll View").GetComponent<ScrollRect>().OnBeginDrag(eventData); GameObject.Find("Scr…

linux安装jdk

yum安装jdk 在linux上使用yum安装是非常粗暴无脑的&#xff0c;但仍然有需要注意的点&#xff0c;不然会掉坑里。这里说一下步骤。 1.1. 执行命令yum list |grep jdk查看可安装jdk版本 1.2. 选择一个java版本进行安装 这里我们希望安装java1.8&#xff0c;因为我们的机器是64位…

go语言操作 PostgreSQL 数据库

1. Go 的 PostgreSQL 驱动程序 使用go get命令来安装 go get github.com/lib/pqPostgreSQL 数据库凭据&#xff1a;确保要连接的 PostgreSQL 数据库的地址、端口、用户名和密码 2. 导入必要的包 首先&#xff0c;在 Go 代码中导入所需的包&#xff0c;包括 PostgreSQL 驱动…