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多条件判断场景中规则执行器的设计
Jun 26 Java/Android
SpringBoot快速入门详解
Jul 21 Java/Android
springboot中rabbitmq实现消息可靠性机制详解
Sep 25 Java/Android
Springboot如何同时装配两个相同类型数据库
Nov 17 Java/Android
关于maven依赖 ${xxx.version}报错问题
Jan 18 Java/Android
正则表达式拆分url实例代码
Feb 24 Java/Android
Java并发编程之原子性-Atomic的使用
Mar 16 Java/Android
MybatisPlus EntityWrapper如何自定义SQL
Mar 22 Java/Android
Netty分布式客户端处理接入事件handle源码解析
Mar 25 Java/Android
教你在 Java 中实现 Dijkstra 最短路算法的方法
Apr 08 Java/Android
详细介绍Java中的CyclicBarrier
Apr 13 Java/Android
Java存储没有重复元素的数组
Apr 29 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 高效率写法 推荐
2010/02/21 PHP
用PHP书写安全的脚本代码
2012/02/05 PHP
smarty自定义函数htmlcheckboxes用法实例
2015/01/22 PHP
PHP Oauth授权和本地加密实现方法
2016/08/12 PHP
Yii框架实现图片上传的方法详解
2017/05/20 PHP
PHP PDOStatement::setFetchMode讲解
2019/02/03 PHP
在网页里看flash的trace数据的js类
2009/01/10 Javascript
Json对象与Json字符串互转(4种转换方式)
2013/03/27 Javascript
使用jquery实现div的tab切换实例代码
2013/05/27 Javascript
js加载之使用DOM方法动态加载Javascript文件
2013/11/08 Javascript
js实现遮罩层弹出框的方法
2015/01/15 Javascript
js点击按钮实现带遮罩层的弹出视频效果
2015/12/19 Javascript
Node.js开发者必须了解的4个JS要点
2016/02/21 Javascript
JavaScript简单实现鼠标移动切换图片的方法
2016/02/23 Javascript
使用JS正则表达式 替换括号,尖括号等
2016/11/29 Javascript
学习 NodeJS 第八天:Socket 通讯实例
2016/12/21 NodeJs
jQuery Validate插件ajax方式验证输入值的实例
2017/12/21 jQuery
vue+VeeValidate 校验范围实例详解(部分校验,全部校验)
2018/10/19 Javascript
vscode下的vue文件格式化问题
2018/11/28 Javascript
Python的垃圾回收机制深入分析
2014/07/16 Python
python实现图书管理系统
2018/03/12 Python
Pandas GroupBy对象 索引与迭代方法
2018/11/16 Python
使用Django开发简单接口实现文章增删改查
2019/05/09 Python
关于pytorch多GPU训练实例与性能对比分析
2019/08/19 Python
python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例
2020/02/28 Python
pycharm如何设置官方中文(如何汉化)
2020/12/29 Python
Jupyter Notebook 远程访问配置详解
2021/01/11 Python
毕业生的自我评价
2013/12/30 职场文书
运动会入场解说词300字
2014/01/25 职场文书
告诉你怎样写创业计划书
2014/01/27 职场文书
创建服务型党组织实施方案
2014/02/25 职场文书
优秀少先队工作者事迹材料
2014/05/13 职场文书
助人为乐好少年事迹材料
2014/08/18 职场文书
中学教师师德师风演讲稿
2014/08/22 职场文书
2015年幼儿园中班工作总结
2015/04/25 职场文书
升职自荐书
2019/05/09 职场文书