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中的static关键字
Jun 14 Java/Android
Springboot如何使用logback实现多环境配置?
Jun 16 Java/Android
详解Java实现数据结构之并查集
Jun 23 Java/Android
Spring整合Mybatis的全过程
Jun 28 Java/Android
springboot如何接收application/x-www-form-urlencoded类型的请求
Nov 02 Java/Android
SpringDataJPA在Entity中常用的注解介绍
Dec 06 Java/Android
Java 超详细讲解十大排序算法面试无忧
Apr 08 Java/Android
零基础学java之带返回值的方法的定义和调用
Apr 10 Java/Android
java版 联机五子棋游戏
May 04 Java/Android
Java实现添加条码或二维码到Word文档
Jun 01 Java/Android
Java实现带图形界面的聊天程序
Jun 10 Java/Android
SpringBoot项目多数据源及mybatis 驼峰失效的问题解决方法
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反转字符串函数strrev()函数的用法
2012/02/04 PHP
php获取访问者浏览页面的浏览器类型
2017/01/23 PHP
解决windows上php xdebug 无法调试的问题
2020/02/19 PHP
载入进度条 效果
2006/07/08 Javascript
JQuery打造PHP的AJAX表单提交实例
2009/11/03 Javascript
ExtJs grid行 右键菜单的两种方法
2010/06/19 Javascript
Prototype源码浅析 String部分(三)之HTML字符串处理
2012/01/15 Javascript
一个JavaScript用逗号分割字符串实例
2014/09/22 Javascript
jquery实现的用户注册表单提示操作效果代码分享
2015/08/28 Javascript
基于BootStrap的图片轮播效果展示实例代码
2016/05/23 Javascript
AngularJs上传前预览图片的实例代码
2017/01/20 Javascript
node-sass安装失败的原因与解决方法
2017/09/04 Javascript
vue封装可复用组件confirm,并绑定在vue原型上的示例
2019/10/31 Javascript
[02:28]DOTA2亚洲邀请赛 LGD战队巡礼
2015/02/03 DOTA
Python查询Mysql时返回字典结构的代码
2012/06/18 Python
python生成二维码的实例详解
2017/10/29 Python
浅谈numpy库的常用基本操作方法
2018/01/09 Python
简单的python协同过滤程序实例代码
2018/01/31 Python
python2.7到3.x迁移指南
2018/02/01 Python
Python常见数字运算操作实例小结
2019/03/22 Python
python读取word 中指定位置的表格及表格数据
2019/10/23 Python
Python实现图片批量加入水印代码实例
2019/11/30 Python
在CentOS7下安装Python3教程解析
2020/07/09 Python
Python如何读写CSV文件
2020/08/13 Python
分享CSS3中必须要知道的10个顶级命令
2012/04/26 HTML / CSS
详解HTML5之pushstate、popstate操作history,无刷新改变当前url
2017/03/15 HTML / CSS
为世界各地的女性设计和生产时尚服装:ROMWE
2016/09/17 全球购物
Snapfish英国:在线照片打印和个性化照片礼品
2017/01/13 全球购物
京东全球售:直邮香港,澳门,台湾,美国,澳大利亚等地区
2017/09/24 全球购物
Java中各种基本数据类型的默认值都是什么
2016/12/22 面试题
读群众路线心得体会
2014/03/07 职场文书
房屋维修协议书范本
2014/09/25 职场文书
2014年安全保卫工作总结
2014/11/13 职场文书
公司员工安全协议书
2014/11/21 职场文书
vue项目两种方式实现竖向表格的思路分析
2021/04/28 Vue.js
Win11运行育碧游戏总是崩溃怎么办 win11玩育碧游戏出现性能崩溃的解决办法
2022/04/06 数码科技