java通过minio下载pdf附件

java通过minio下载pdf附件


文章目录


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

java 复制代码
 @Resource
    private 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();
        }
    }
相关推荐
计算机毕业编程指导师几秒前
计算机毕设选题推荐:基于Hadoop与Spark的Steam游戏数据分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习 深度学习
大数据·hadoop·python·计算机·spark·毕业设计·steam游戏
计算机毕业编程指导师6 分钟前
【计算机毕设选题推荐】基于Hadoop+Spark的白鹿抖音评论大数据分析与可视化系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习 深度学习
大数据·hadoop·python·计算机·spark·毕业设计·抖音评论
谢亮_vipxieliang15 分钟前
Spring 事务失效的常见场景
java·开发语言·数据库·spring boot
Zootopia62616 分钟前
飞行力学知识梳理1|飞行性能与稳定性
人工智能·python·算法·机器学习·无人机·学习方法·信息与通信
Y38153266224 分钟前
搜索 API 延迟优化:并发数、超时与超时的真实代价
python·搜索引擎
郑州光合科技余经理37 分钟前
海外版外卖加盟:总站与分站配送规则怎么分开管
java·开发语言·前端·后端·uni-app·php·ai编程
2601_9620715738 分钟前
类变量和全局变量的生命周期有什么区别?
java·开发语言·jvm
wangqiaowq1 小时前
PII 脱敏指的是:把个人身份信息(PII)中能识别到具体个人的敏感部分,用替换、遮蔽、变形等方式处理掉,使得数据在保留可用性的同时,不再直接暴露个人身份。
python
code2cat1 小时前
Java进阶篇之AtomicReference:一次替换引用,读到一份完整状态
java·并发编程·不可变对象·atomicreference
专业程序开发源1 小时前
springboot简历管理系统81389-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·spring·php·课程设计