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 相关文章推荐
启动Tomcat时出现大量乱码的解决方法
Jun 21 Java/Android
java调用Restful接口的三种方法
Aug 23 Java/Android
java代码实现空间切割
Jan 18 Java/Android
关于MybatisPlus配置双数据库驱动连接数据库问题
Jan 22 Java/Android
springboot layui hutool Excel导入的实现
Mar 31 Java/Android
Java实战之课程信息管理系统的实现
Apr 01 Java/Android
解决springboot druid数据库连接失败后一直重连的方法
Apr 19 Java/Android
Elasticsearch 配置详解
Apr 19 Java/Android
openGauss数据库JDBC环境连接配置的详细过程(Eclipse)
Jun 01 Java/Android
Android开发手册TextInputLayout样式使用示例
Jun 10 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无限级分类方法及代码
2013/06/21 PHP
PHP cdata 处理(详细介绍)
2013/07/05 PHP
PHP面向对象精要总结
2014/11/07 PHP
PHP遍历数组的三种方法及效率对比分析
2015/02/12 PHP
PHP中的随机性 你觉得自己幸运吗?
2016/01/22 PHP
JavaScript高级程序设计阅读笔记(六) ECMAScript中的运算符(二)
2012/02/27 Javascript
jquery中的查找parents与closest方法之间的区别
2013/12/02 Javascript
两个数组去重的JS代码
2013/12/04 Javascript
基于jquery实现等比缩放图片
2014/12/03 Javascript
javascript性能优化之DOM交互操作实例分析
2015/12/12 Javascript
理解javascript正则表达式
2016/03/08 Javascript
基于JQuery的$.ajax方法进行异步请求导致页面闪烁的解决办法
2016/05/10 Javascript
Angular Module声明和获取重载实例代码
2016/09/14 Javascript
利用transition实现文字上下抖动的效果
2017/01/21 Javascript
原生js实现打字动画游戏
2017/02/04 Javascript
BootStrap selectpicker后台动态绑定数据
2017/06/01 Javascript
jQuery Datatable 多个查询条件自定义提交事件(推荐)
2017/08/24 jQuery
使用nvm管理不同版本的node与npm的方法
2017/10/31 Javascript
小程序ios音频播放没声音问题的解决
2018/07/11 Javascript
微信小程序的注册页面包含倒计时验证码、获取用户信息
2019/05/22 Javascript
layer.open弹层查看缩略图的原图,自适应大小的实例
2019/09/05 Javascript
python编程开发之日期操作实例分析
2015/11/13 Python
python使用pycharm环境调用opencv库
2018/02/11 Python
python 判断三个数字中的最大值实例代码
2019/07/24 Python
PyQT5 实现快捷键复制表格数据的方法示例
2020/06/19 Python
Book Depository欧盟:一家领先的国际图书零售商
2019/05/21 全球购物
公司年会搞笑主持词
2014/03/24 职场文书
学生个人自我鉴定范文
2014/03/28 职场文书
学习型班组申报材料
2014/05/31 职场文书
工作违纪检讨书范文
2015/01/26 职场文书
2015年度公共机构节能工作总结
2015/05/26 职场文书
2016年中秋节晚会领导致辞
2015/11/26 职场文书
二年级数学教学反思
2016/02/16 职场文书
导游词之五台山
2019/10/11 职场文书
python编写五子棋游戏
2021/05/25 Python
一起来学习Python的元组和列表
2022/03/13 Python