SpringBoot整合minio快速入门教程(代码示例)


Posted in Java/Android onApril 03, 2022

分享一个快速使用springboot整合minio实现文件上传和下载的示例。前提是已经安装并运行minio服务,参考 minio快速入门文档

首先添加Minio的依赖

<dependency>
        <groupId>io.minio</groupId>
        <artifactId>minio</artifactId>
        <version>3.0.10</version>
    </dependency>

然后写一个controller类

这只是一个简单的demo,没有进行任何的封装,可以根据实际情况进行封装。

package com.file.server.controller;
import io.minio.MinioClient;
import org.apache.tomcat.util.http.fileupload.IOUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
@RestController
public class MinioController {
   private static String url = "http://127.0.0.1:9000";  //minio服务的IP端口
   private static String accessKey = "W2ZWITFFDWFM5TWS3WI9";  
   private static String secretKey = "dNx++XsRJpjmWVQHWv8djMCFJ0A3YXbEr4qfKHR+";
   
    //上传文件到minio服务
 @PostMapping("upload")
 public String upload(@RequestParam("fileName") MultipartFile file )  {
   try {
       MinioClient minioClient = new MinioClient(url, accessKey, secretKey);
       InputStream is= file.getInputStream(); //得到文件流
       String fileName = file.getOriginalFilename(); //文件名
       String contentType = file.getContentType();  //类型
       minioClient.putObject("file",fileName,is,contentType); //把文件放置Minio桶(文件夹)
       return  "上传成功";
     }catch (Exception e){
         return "上传失败";
     }
    }
    //下载minio服务的文件
    @GetMapping("download")
    public String download(HttpServletResponse response){
        try {
          MinioClient minioClient = new MinioClient(url, accessKey, secretKey);
          InputStream fileInputStream = minioClient.getObject("file", "test.jpg");
          response.setHeader("Content-Disposition", "attachment;filename=" + "test.jpg");
          response.setContentType("application/force-download");
          response.setCharacterEncoding("UTF-8");
          IOUtils.copy(fileInputStream,response.getOutputStream());
          return "下载完成";
        }catch (Exception e){
            return "下载失败";
        }
    }
    //获取minio文件的下载地址
    @GetMapping("url")
    public  String  getUrl(){
        try {
            MinioClient minioClient = new MinioClient(url, accessKey, secretKey);
            String url = minioClient.presignedGetObject("file", "test.jpg");
            return url;
        }catch (Exception e){
            return "获取失败";
        }
    }
}

到此这篇关于SpringBoot整合minio快速入门教程(代码示例)的文章就介绍到这了,更多相关SpringBoot整合minio内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Java/Android 相关文章推荐
分析Netty直接内存原理及应用
Jun 14 Java/Android
详解Java实践之抽象工厂模式
Jun 18 Java/Android
Spring Data JPA的Audit功能审计数据库的变更
Jun 26 Java/Android
Java中使用Filter过滤器的方法
Jun 28 Java/Android
springboot临时文件存储目录配置方式
Jul 01 Java/Android
mybatis中注解与xml配置的对应关系和对比分析
Aug 04 Java/Android
Java移除无效括号的方法实现
Aug 07 Java/Android
使用logback实现按自己的需求打印日志到自定义的文件里
Aug 30 Java/Android
Jpa Specification如何实现and和or同时使用查询
Nov 23 Java/Android
Spring Boot 实现 WebSocket
Apr 30 Java/Android
httpclient调用远程接口的方法
Aug 14 Java/Android
Java使用HttpClient实现文件下载
Aug 14 Java/Android
SpringBoot整合Minio文件存储
Apr 03 #Java/Android
Java中Quartz高可用定时任务快速入门
Apr 03 #Java/Android
Spring Security使用单点登录的权限功能
Spring Boot 底层原理基础深度解析
Java 超详细讲解数据结构中的堆的应用
Java 数据结构七大排序使用分析
Java基础——Map集合
Apr 01 #Java/Android
You might like
PHP SFTP实现上传下载功能
2017/07/26 PHP
PHP实现的AES双向加密解密功能示例【128位】
2018/09/03 PHP
top.location.href 没有权限 解决方法
2008/08/05 Javascript
JQUERY CHECKBOX全选,取消全选,反选方法三
2008/08/30 Javascript
JavaScript 新手24条实用建议[TUTS+]
2009/06/21 Javascript
IE 下的只读 innerHTML
2009/08/21 Javascript
JavaScript高级程序设计 阅读笔记(二十) js错误处理
2012/08/14 Javascript
Javascript中的包装类型介绍
2015/04/02 Javascript
简单实现js选项卡切换效果
2016/02/03 Javascript
jQuery删除节点用法示例(remove方法)
2016/09/08 Javascript
AngularJS 2.0入门权威指南
2016/10/08 Javascript
Javascript基于jQuery UI实现选中区域拖拽效果
2016/11/25 Javascript
JavaScript中的高级函数
2018/01/04 Javascript
详解vue 不同环境配置不同的打包命令
2019/04/07 Javascript
解决vue项目刷新后,导航菜单高亮显示的位置不对问题
2019/11/01 Javascript
[39:07]LGD vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.21
2018/08/22 DOTA
[56:56]VG vs LGD 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.22
2019/09/05 DOTA
教大家玩转Python字符串处理的七种技巧
2017/03/31 Python
Django入门使用示例
2017/12/12 Python
pytorch 转换矩阵的维数位置方法
2018/12/08 Python
python实现异常信息堆栈输出到日志文件
2019/12/26 Python
python如何遍历指定路径下所有文件(按按照时间区间检索)
2020/09/14 Python
安装并免费使用Pycharm专业版(学生/教师)
2020/09/24 Python
Bibloo罗马尼亚网站:女装、男装、童装及鞋子和配饰
2019/07/20 全球购物
工商企业管理应届生求职信
2014/05/04 职场文书
大学生入党推荐书范文
2014/05/17 职场文书
实验室的标语
2014/06/20 职场文书
机械工程及自动化专业求职信
2014/09/03 职场文书
处级干部反四风个人对照检查材料思想汇报
2014/09/27 职场文书
消夏晚会主持词
2015/06/30 职场文书
2015年酒店销售部工作总结
2015/07/24 职场文书
公司考勤管理制度
2015/08/04 职场文书
2016中秋晚会开幕词
2016/03/03 职场文书
python numpy中multiply与*及matul 的区别说明
2021/05/26 Python
html+css实现环绕倒影加载特效
2021/07/07 HTML / CSS
pnpm对npm及yarn降维打击详解
2022/08/05 Javascript