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 20 Java/Android
IDEA使用SpringAssistant插件创建SpringCloud项目
Jun 23 Java/Android
图解排序算法之希尔排序Java实现
Jun 26 Java/Android
浅谈resultMap的用法及关联结果集映射
Jun 30 Java/Android
SpringBoot集成Druid连接池连接MySQL8.0.11
Jul 02 Java/Android
spring cloud eureka 服务启动失败的原因分析及解决方法
Mar 17 Java/Android
Spring事务管理下synchronized锁失效问题的解决方法
Mar 31 Java/Android
Android开发实现极为简单的QQ登录页面
Apr 24 Java/Android
Mybatis-plus配置分页插件返回统一结果集
Jun 21 Java/Android
一文搞懂Java中的注解和反射
Jun 21 Java/Android
Android实现图片九宫格
Jun 28 Java/Android
利用Java连接Hadoop进行编程
Jun 28 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
不用iconv库的gb2312与utf-8的互换函数
2006/10/09 PHP
php入门学习知识点一 PHP与MYSql连接与查询
2011/07/14 PHP
利用PHP生成静态HTML文档的原理
2012/10/29 PHP
php inc文件使用的风险和注意事项
2013/11/12 PHP
PHP简单实现模拟登陆功能示例
2017/09/15 PHP
Mootools 1.2教程 输入过滤第二部分(字符串)
2009/09/15 Javascript
网站如何做到完全不需要jQuery也可以满足简单需求
2013/06/27 Javascript
JavaScript实现图片DIV竖向滑动的方法
2015/04/25 Javascript
简介JavaScript中的setDate()方法的使用
2015/06/11 Javascript
jquery实现简单的banner轮播效果【实例】
2016/03/30 Javascript
javascript HTML5文件上传FileReader API
2020/03/27 Javascript
深入剖析JavaScript中的函数currying柯里化
2016/04/29 Javascript
javascript表单事件处理方法详解
2016/05/15 Javascript
AngularJS ng-bind-template 指令详解
2016/07/30 Javascript
详解javascript 正则表达式之分组与前瞻匹配
2018/05/30 Javascript
其实你可以少写点if else与switch(推荐)
2019/01/10 Javascript
详解Puppeteer前端自动化测试实践
2019/02/21 Javascript
python模拟登录百度代码分享(获取百度贴吧等级)
2013/12/27 Python
用Python的Django框架编写从Google Adsense中获得报表的应用
2015/04/17 Python
Python检测网站链接是否已存在
2016/04/07 Python
python分块读取大数据,避免内存不足的方法
2018/12/10 Python
浅析Python 序列化与反序列化
2020/08/05 Python
python 如何引入协程和原理分析
2020/11/30 Python
html5 音乐播放器 audio 标签使用概述
2013/07/15 HTML / CSS
html5 迷宫游戏(碰撞检测)实例一
2013/07/25 HTML / CSS
俄罗斯小米家用电器、电子产品和智能家居商店:Poood.ru
2020/04/03 全球购物
中学生团员自我评价分享
2013/12/07 职场文书
护士岗前培训自我评鉴
2014/02/28 职场文书
给校长的一封建议书
2014/03/12 职场文书
会计毕业生自荐书
2014/06/12 职场文书
主要领导对照检查材料
2014/08/26 职场文书
群众路线四风问题整改措施
2014/09/27 职场文书
党员干部学法用法心得体会
2016/01/21 职场文书
python ConfigParser库的使用及遇到的坑
2022/02/12 Python
mysql字段为NULL索引是否会失效实例详解
2022/05/30 MySQL
前端canvas中物体边框和控制点的实现示例
2022/08/05 Javascript