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 相关文章推荐
浅谈@Value和@Bean的执行顺序问题
Jun 16 Java/Android
Java多条件判断场景中规则执行器的设计
Jun 26 Java/Android
springboot临时文件存储目录配置方式
Jul 01 Java/Android
详细了解java监听器和过滤器
Jul 09 Java/Android
小程序与后端Java接口交互实现HelloWorld入门
Jul 09 Java/Android
spring cloud 配置中心客户端启动遇到的问题
Sep 25 Java/Android
JAVA API 实用类 String详解
Oct 05 Java/Android
JVM的类加载器和双亲委派模式你了解吗
Mar 13 Java/Android
Android超详细讲解组件ScrollView的使用
Mar 31 Java/Android
Android基于Fresco实现圆角和圆形图片
Apr 01 Java/Android
springboot创建的web项目整合Quartz框架的项目实践
Jun 21 Java/Android
Java 中的 Lambda List 转 Map 的多种方法详解
Jul 07 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 str_pad 函数用法简介
2009/07/11 PHP
PHP语言中global和$GLOBALS[]的分析 之二
2012/02/02 PHP
php中定时计划任务的实现原理
2013/01/08 PHP
php操作csv文件代码实例汇总
2014/09/22 PHP
thinkPHP中多维数组的遍历方法
2016/01/09 PHP
PHP后台微信支付和支付宝支付开发
2017/04/28 PHP
区分JS中的undefined,null,&quot;&quot;,0和false
2007/03/08 Javascript
javascript显示选择目录对话框的代码
2008/11/10 Javascript
offsetParent 算法分析
2010/04/05 Javascript
JavaScript Array对象扩展indexOf()方法
2014/05/09 Javascript
javascript实例--教你实现扑克牌洗牌功能
2014/05/15 Javascript
director.js实现前端路由使用实例
2015/02/03 Javascript
javascript获取元素离文档各边距离的方法
2015/02/13 Javascript
jquery序列化方法实例分析
2015/06/10 Javascript
JavaScript检测上传文件大小的方法
2015/07/22 Javascript
JavaScript实现上下浮动的窗口效果代码
2015/10/12 Javascript
js代码实现点击按钮出现60秒倒计时
2021/01/28 Javascript
node.js express安装及示例网站搭建方法(分享)
2016/08/22 Javascript
html5+CSS 实现禁止IOS长按复制粘贴功能
2016/12/28 Javascript
Bootstrap与Angularjs的模态框实例代码
2017/08/03 Javascript
JS/HTML5游戏常用算法之碰撞检测 像素检测算法实例详解
2018/12/12 Javascript
Python协程的用法和例子详解
2017/09/09 Python
linux环境下Django的安装配置详解
2019/07/22 Python
浅析python redis的连接及相关操作
2019/11/07 Python
JackJones官方旗舰店:杰克琼斯男装
2018/03/27 全球购物
德国拖鞋网站:German Slippers
2019/11/08 全球购物
限量版运动鞋和街头服饰:TheDrop
2020/09/06 全球购物
全球性的众包图形设计市场:DesignCrowd
2021/02/02 全球购物
网络、C以及其他硬件方面的面试题
2016/08/23 面试题
高中自我评价分享
2013/12/05 职场文书
施工资料员的岗位职责
2013/12/22 职场文书
应届生如何写自荐信
2014/01/05 职场文书
数控技校生自我鉴定
2014/03/02 职场文书
中队活动总结
2014/08/27 职场文书
教育合作协议范本
2014/10/17 职场文书
个人售房合同协议书
2016/03/21 职场文书