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 @ConfigurationProperties和@PropertySource的区别
Jun 11 Java/Android
基于Java的MathML转图片的方法(示例代码)
Jun 23 Java/Android
探讨Java中的深浅拷贝问题
Jun 26 Java/Android
Springboot集成阿里云OSS上传文件系统教程
Jun 28 Java/Android
浅谈Java父子类加载顺序
Aug 04 Java/Android
logback如何自定义日志存储
Aug 30 Java/Android
Android开发 使用文件储存的方式保存QQ密码
Apr 24 Java/Android
Spring Boot 使用 Spring-Retry 进行重试框架
Apr 24 Java/Android
Android存储中最基本的文件存储方式
Apr 30 Java/Android
Java 多线程协作作业之信号同步
May 11 Java/Android
SpringCloud超详细讲解Feign声明式服务调用
Jun 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
JAVA/JSP学习系列之二
2006/10/09 PHP
PHP设计模式之装饰者模式
2012/02/29 PHP
使用php统计字符串中中英文字符的个数
2013/06/23 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十五)
2014/06/30 PHP
遍历echsop的region表形成缓存的程序实例代码
2016/11/01 PHP
一步一步教你写一个jQuery的插件教程(Plugin)
2009/09/03 Javascript
js 格式化时间日期函数小结
2010/03/20 Javascript
Javascript根据指定下标或对象删除数组元素
2012/12/21 Javascript
JS复制到剪贴板示例代码
2013/10/30 Javascript
提交按钮的name='submit'引起的js失效问题及原因
2015/02/25 Javascript
关于动态生成dom绑定事件失效的原因及解决方法
2016/08/06 Javascript
纯css下拉菜单 无需js
2016/08/15 Javascript
基于jQuery对象和DOM对象和字符串之间的转化实例
2017/08/08 jQuery
NodeJS模块与ES6模块系统语法及注意点详解
2019/01/04 NodeJs
详解easyui 切换主题皮肤
2019/04/04 Javascript
通过vue手动封装on、emit、off的代码详解
2019/05/29 Javascript
js实现类选择器和name属性选择器的示例步骤
2021/02/07 Javascript
python实现按任意键继续执行程序
2016/12/30 Python
Python 迭代器与生成器实例详解
2017/05/18 Python
Windows系统下多版本pip的共存问题详解
2017/10/10 Python
python使用tkinter实现简单计算器
2018/01/30 Python
python3之模块psutil系统性能信息使用
2018/05/30 Python
ERLANG和PYTHON互通实现过程详解
2019/07/05 Python
python爬虫的一个常见简单js反爬详解
2019/07/09 Python
python批量处理txt文件的实例代码
2020/01/13 Python
用python写爬虫简单吗
2020/07/28 Python
初探CSS3中的calc()功能
2015/07/14 HTML / CSS
哄娃神器4moms商店:美国婴童用品品牌
2019/03/07 全球购物
匈牙利超级网上商店和优惠:Alza.hu
2019/12/17 全球购物
GWebs公司笔试题
2012/05/04 面试题
求职意向书范文
2014/04/01 职场文书
端午节演讲稿
2014/05/23 职场文书
2015年前台个人工作总结
2015/04/03 职场文书
书法社团活动总结
2015/05/07 职场文书
Django显示可视化图表的实践
2021/05/10 Python
Requests什么的通通爬不了的Python超强反爬虫方案!
2021/05/20 Python