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 相关文章推荐
SpringCloud Alibaba 基本开发框架搭建过程
Jun 13 Java/Android
一篇带你入门Java垃圾回收器
Jun 16 Java/Android
使用Springboot实现健身房管理系统
Jul 01 Java/Android
Log4j.properties配置及其使用
Aug 02 Java/Android
简述Java中throw-throws异常抛出
Aug 07 Java/Android
Java获取e.printStackTrace()打印的信息方式
Aug 07 Java/Android
JPA 通过Specification如何实现复杂查询
Nov 23 Java/Android
Mybatis是这样防止sql注入的
Dec 06 Java/Android
java objectUtils 使用可能会出现的问题
Feb 28 Java/Android
Java线程的6种状态与生命周期
May 11 Java/Android
volatile保证可见性及重排序方法
Aug 05 Java/Android
Java实现贪吃蛇游戏的示例代码
Sep 23 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下使用SMTP发邮件的代码
2008/01/10 PHP
php实现将字符串按照指定距离进行分割的方法
2015/03/14 PHP
PHP文件缓存smarty模板应用实例分析
2016/02/26 PHP
Thinkphp实现站点静态化的方法详解
2017/03/21 PHP
利用PHP获取汉字首字母并且分组排序详解
2017/10/22 PHP
Thinkphp5行为使用方法汇总
2017/12/21 PHP
原型方法的不同写法居然会影响调试的解决方法
2007/03/08 Javascript
在javascript将NodeList作为Array数组处理的方法
2010/07/09 Javascript
jQuery图片轮播的具体实现
2013/09/11 Javascript
Extjs 4.x 得到form CheckBox 复选框的值
2014/05/04 Javascript
js自定义鼠标右键的实现原理及源码
2014/06/23 Javascript
JS取得绝对路径的实现代码
2015/01/16 Javascript
JavaScript数据结构与算法之链表
2016/01/29 Javascript
Bootstrap Validator 表单验证
2016/07/25 Javascript
详解AngularJS中ng-src指令的使用
2016/09/07 Javascript
Vue.js每天必学之过滤器与自定义过滤器
2016/09/07 Javascript
jQuery实现圣诞节礼物动画案例解析
2016/12/25 Javascript
详解nodejs异步I/O和事件循环
2017/06/07 NodeJs
JavaScript寄生组合式继承原理与用法分析
2019/01/11 Javascript
Python 代码性能优化技巧分享
2012/08/07 Python
Python 不同对象比较大小示例探讨
2014/08/21 Python
Python实现抓取城市的PM2.5浓度和排名
2015/03/19 Python
Python使用pygame模块编写俄罗斯方块游戏的代码实例
2015/12/08 Python
Python常见读写文件操作实例总结【文本、json、csv、pdf等】
2019/04/15 Python
Python随机数函数代码实例解析
2020/02/09 Python
pip安装提示Twisted错误问题(Python3.6.4安装Twisted错误)
2020/05/09 Python
CSS3的column-fill属性对齐列内容高度的用法详解
2016/07/01 HTML / CSS
莫斯科绝对前卫最秘密的商店:SVMoscow
2017/10/23 全球购物
表扬稿范文
2015/01/17 职场文书
介绍信如何写
2015/01/31 职场文书
特此通知格式
2015/04/27 职场文书
毕业论文致谢信
2015/05/14 职场文书
python 利用 PIL 将数组值转成图片的实现
2021/04/12 Python
Go语言并发编程 sync.Once
2021/10/16 Golang
Z-Order加速Hudi大规模数据集方案分析
2022/03/31 Servers
修改Nginx配置返回指定content-type的方法
2022/09/23 Servers