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 相关文章推荐
Java中使用Filter过滤器的方法
Jun 28 Java/Android
Java基础之线程锁相关知识总结
Jun 30 Java/Android
JavaWeb 入门篇:创建Web项目,Idea配置tomcat
Jul 16 Java/Android
springboot 多数据源配置不生效遇到的坑及解决
Nov 17 Java/Android
Java Lambda表达式常用的函数式接口
Apr 07 Java/Android
JAVA springCloud项目搭建流程
May 11 Java/Android
spring IOC容器的Bean管理XML自动装配过程
May 30 Java/Android
Ubuntu18.04下QT开发Android无法连接设备问题解决实现
Jun 01 Java/Android
Java中的Kotlin 内部类原理
Jun 16 Java/Android
Android基础入门之dataBinding的简单使用教程
Jun 21 Java/Android
httpclient调用远程接口的方法
Aug 14 Java/Android
Java获取字符串编码格式实现思路
Sep 23 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
APMServ使用说明
2006/10/23 PHP
PHP UTF8编码内的繁简转换类
2009/07/20 PHP
php轻量级的性能分析工具xhprof的安装使用
2015/08/12 PHP
基于PHP实现短信验证码接口(容联运通讯)
2016/09/06 PHP
需要做特殊处理的DOM元素属性的访问
2010/11/05 Javascript
jQuery调用WebService的实现代码
2011/06/19 Javascript
javascript开发技术大全-第1章javascript概述
2011/07/03 Javascript
jQuery获得内容和属性示例代码
2014/01/16 Javascript
js动态改变select选择变更option的index值示例
2014/07/10 Javascript
JavaScript实现函数返回多个值的方法
2015/06/09 Javascript
Bootstrap实现渐变顶部固定自适应导航栏
2020/08/27 Javascript
bootstrapValidator bootstrap-select验证不可用的解决办法
2017/01/11 Javascript
利用jQuery实现滑动开关按钮效果(附demo源码下载)
2017/02/07 Javascript
JavaScript队列的应用实例详解【经典数据结构】
2017/04/12 Javascript
详解webpack+express多页站点开发
2017/12/22 Javascript
JavaScript函数式编程(Functional Programming)高阶函数(Higher order functions)用法分析
2019/05/22 Javascript
Python实现简单登录验证
2016/04/13 Python
Python入门_浅谈字符串的分片与索引、字符串的方法
2017/05/16 Python
分享几道你可能遇到的python面试题
2017/07/24 Python
Python中flatten( )函数及函数用法详解
2018/11/02 Python
Python小游戏之300行代码实现俄罗斯方块
2019/01/04 Python
python实现动态数组的示例代码
2019/07/15 Python
Python实现非正太分布的异常值检测方式
2019/12/09 Python
python实现批量修改文件名
2020/03/23 Python
Python3批量创建Crowd用户并分配组
2020/05/20 Python
keras load model时出现Missing Layer错误的解决方式
2020/06/11 Python
Python字符串split及rsplit方法原理详解
2020/06/29 Python
Python持续监听文件变化代码实例
2020/07/22 Python
Visual Studio Code搭建django项目的方法步骤
2020/09/17 Python
Jo Malone美国官网:祖玛珑香水
2017/03/27 全球购物
高品质和独特的产品世界:Creations and Collections
2018/01/07 全球购物
当x.equals(y)等于true时,x.hashCode()与y.hashCode()可以不相等,这句话对不对
2015/05/02 面试题
创联软件面试题笔试题
2012/10/07 面试题
教师师德师风个人整改方案
2014/09/18 职场文书
市委常委会班子党的群众路线教育实践活动整改方案
2014/10/25 职场文书
实训报告范文大全
2014/11/04 职场文书