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 30 Java/Android
Java实现聊天机器人完善版
Jul 04 Java/Android
新手初学Java List 接口
Jul 07 Java/Android
Java 在生活中的 10 大应用
Nov 02 Java/Android
详解Spring Security中的HttpBasic登录验证模式
Mar 17 Java/Android
Java 数据结构七大排序使用分析
Apr 02 Java/Android
springboot用户数据修改的详细实现
Apr 06 Java/Android
Android Flutter实现3D动画效果示例详解
Apr 07 Java/Android
Java 使用类型为Object的变量指向任意类型的对象
Apr 13 Java/Android
Java Spring Boot 正确读取配置文件中的属性的值
Apr 20 Java/Android
Springboot-cli 开发脚手架,权限认证,附demo演示
Apr 28 Java/Android
SpringBoot项目部署到阿里云服务器的实现步骤
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
PHP语法速查表
2006/12/06 PHP
PHP函数spl_autoload_register()用法和__autoload()介绍
2012/02/04 PHP
php利用反射实现插件机制的方法
2015/03/14 PHP
php数组函数array_key_exists()小结
2015/12/10 PHP
Yii2-GridView 中让关联字段带搜索和排序功能示例
2017/01/21 PHP
浅谈php的TS和NTS的区别
2019/03/13 PHP
JavaScript 模拟用户单击事件
2009/12/31 Javascript
jquery中对表单的基本操作代码
2010/07/29 Javascript
jQuery 阴影插件代码分享
2012/01/09 Javascript
javascript学习笔记(二十) 获得和设置元素的特性(属性)
2012/06/20 Javascript
js随机生成字母数字组合的字符串 随机动画数字
2015/09/02 Javascript
Jquery ui datepicker设置日期范围,如只能隔3天【实现代码】
2016/05/04 Javascript
jquery实现轮播图效果
2017/02/13 Javascript
MUI顶部选项卡的用法(tab-top-webview-main)详解
2017/10/08 Javascript
JS实现的简单表单验证功能示例
2017/10/13 Javascript
JS二级菜单不同实现方法分析【4种方法】
2018/12/21 Javascript
vue eslint简要配置教程详解
2019/07/26 Javascript
python中的对象拷贝示例 python引用传递
2014/01/23 Python
python通过pil为png图片填充上背景颜色的方法
2015/03/17 Python
详细解析Python中的变量的数据类型
2015/05/13 Python
python实现微信跳一跳辅助工具步骤详解
2018/01/04 Python
Python实现修改文件内容的方法分析
2018/03/25 Python
Sanic框架应用部署方法详解
2018/07/18 Python
利用Python进行图像的加法,图像混合(附代码)
2019/07/14 Python
计算pytorch标准化(Normalize)所需要数据集的均值和方差实例
2020/01/15 Python
Python Selenium自动化获取页面信息的方法
2020/08/31 Python
elf彩妆英国官网:e.l.f. Cosmetics英国(美国平价彩妆品牌)
2017/11/02 全球购物
小学教师的个人自我鉴定
2013/10/26 职场文书
你的创业计划书怎样才能打动风投
2014/02/06 职场文书
教师自我反思材料
2014/02/14 职场文书
单位工程竣工验收方案
2014/03/16 职场文书
追悼会主持词
2014/03/20 职场文书
学生干部培训方案
2014/06/12 职场文书
退休党员个人对照检查材料思想汇报
2014/09/29 职场文书
干部考核工作总结2015
2015/07/24 职场文书
Android开发实现极为简单的QQ登录页面
2022/04/24 Java/Android