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 相关文章推荐
手把手教你用SpringBoot将文件打包成zip存放或导出
Jun 11 Java/Android
如何解决springcloud feign 首次调用100%失败的问题
Jun 23 Java/Android
分析JVM源码之Thread.interrupt系统级别线程打断
Jun 29 Java/Android
Java Kafka 消费积压监控的示例代码
Jul 01 Java/Android
java设计模式--七大原则详解
Jul 21 Java/Android
Java Spring 控制反转(IOC)容器详解
Oct 05 Java/Android
SpringBoot中使用Redis作为全局锁示例过程
Mar 24 Java/Android
Java中Quartz高可用定时任务快速入门
Apr 03 Java/Android
Android在Sqlite3中的应用及多线程使用数据库的建议
Apr 24 Java/Android
Java+swing实现抖音上的表白程序详解
Jun 25 Java/Android
SpringBoot详解整合Redis缓存方法
Jul 15 Java/Android
Android实现获取短信验证码并自动填充
May 21 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中使用TCPDF生成PDF文档实例
2014/07/01 PHP
PHP中使用file_get_contents post数据代码例子
2015/02/13 PHP
PHP中使用BigMap实例
2015/03/30 PHP
浅析iis7.5安装配置php环境
2015/05/10 PHP
5款适合PHP使用的HTML编辑器推荐
2015/07/03 PHP
PHP获取redis里不存在的6位随机数应用示例【设置24小时过时】
2017/06/07 PHP
laravel 事件/监听器实例代码
2019/04/12 PHP
Ext JS添加子组件的误区探讨
2013/06/28 Javascript
ParseInt函数参数设置介绍
2014/01/02 Javascript
JS实现文字放大效果的方法
2015/03/03 Javascript
Angular Js文件上传之form-data
2015/08/28 Javascript
jquery实现的V字形显示效果代码
2015/10/27 Javascript
jquery实现表格隔行换色效果
2015/11/19 Javascript
使用JavaScript实现ajax的实例代码
2016/05/11 Javascript
ionic 上拉菜单(ActionSheet)实例代码
2016/06/06 Javascript
把普通对象转换成json格式的对象的简单实例
2016/07/04 Javascript
js清除浏览器缓存的几种方法
2017/03/15 Javascript
Node.js+jade+mongodb+mongoose实现爬虫分离入库与生成静态文件的方法
2017/09/20 Javascript
深入浅析js原型链和vue构造函数
2018/10/25 Javascript
解决vue的过渡动画无法正常实现问题
2019/10/31 Javascript
javascript跳转与返回和刷新页面的实例代码
2019/11/20 Javascript
python通过ElementTree操作XML获取结点读取属性美化XML
2013/12/02 Python
Python基于checksum计算文件是否相同的方法
2015/07/09 Python
梯度下降法介绍及利用Python实现的方法示例
2017/07/12 Python
基于scrapy的redis安装和配置方法
2018/06/13 Python
python将控制台输出保存至文件的方法
2019/01/07 Python
Python基于WordCloud制作词云图
2019/11/29 Python
django ListView的使用 ListView中获取url中的参数值方式
2020/03/27 Python
BCBG官网:BCBGMAXAZRIA
2017/12/29 全球购物
荷兰演唱会和体育比赛订票网站:viagogo荷兰
2018/04/08 全球购物
艺术用品:Arteza
2018/11/25 全球购物
农田水利实习自我鉴定
2013/09/19 职场文书
前端学习——JavaScript原生实现购物车案例
2021/03/31 Javascript
Ajax是什么?Ajax高级用法之Axios技术
2021/04/21 Javascript
教你用Python matplotlib库制作简单的动画
2021/06/11 Python
多台电脑共享文件怎么设置?多台电脑共享文件操作教程
2022/04/08 数码科技