docker-compose安装minio

version: '3'

services:

minio:

image: minio/minio:latest # 原镜像`minio/minio:latest`

container_name: minio # 容器名为'minio'

restart: always # 指定容器退出后的重启策略为始终重启

volumes: # 数据卷挂载路径设置,将本机目录映射到容器目录

- "./data:/data"

- "./minio:/minio"

- "./config:/root/.minio"

environment:

TZ: Asia/Shanghai

LANG: en_US.UTF-8

MINIO_PROMETHEUS_AUTH_TYPE: "public"

MINIO_ACCESS_KEY: "root" # 登录账号

MINIO_SECRET_KEY: "password" # 登录密码

command: server /data

logging:

driver: "json-file"

options:

max-size: "100m"

ports: # 映射端口

- "9293:9000"

- "42330:42330"

运行

docker-compose -f ./docker-compose-minio.yml -p minio up -d --build

设置minio基本参数

登录http://localhost:9293/minio输入root 和password

点击右下角加号选择创建桶create buket

设置桶的权限

集成SpringBoot

引入依赖

io.minio

minio

6.0.11

commons-io

commons-io

2.6

配置文件

@Getter

@Setter

@ConfigurationProperties(prefix = "minio")

public class MinioProp {

public static final String MINIO_BUCKET = "mxf";

private String endpoint;//连接url

private String accesskey;//用户名

private String secretKey;//密码

}

@Configuration

@EnableConfigurationProperties(MinioProp.class)

public class MinioConfiguration {

@Autowired

private MinioProp minioProp;

@Bean

public MinioClient minioClient() throws InvalidPortException, InvalidEndpointException {

MinioClient client =new MinioClient(minioProp.getEndpoint(),minioProp.getAccesskey(),minioProp.getSecretKey());

return client;

}

}

@RestController

@RequestMapping("/minio")

public class MinioController {

@Autowired

private MinioClient minioClient;

@GetMapping("/upload")

public String upload(){

return "/upload.jsp";

}

@ResponseBody

@PostMapping("/upload")

public Object upload(@RequestParam(name = "file", required = false) MultipartFile file){

if(file==null || file.getSize()==0){

return "上传文件不能为空";

}

String orgfileName = file.getOriginalFilename();

try {

InputStream in = file.getInputStream();

String contentType= file.getContentType();

minioClient.putObject(MinioProp.MINIO_BUCKET,orgfileName,in,null, null, null, contentType);

Map data=new HashMap<>();

data.put("bucketName",MinioProp.MINIO_BUCKET);

data.put("fileName",orgfileName);

return data;

} catch (Exception e) {

e.printStackTrace();

}

return "上传失败";

}

@RequestMapping("/download/{fileName}")

public void download(HttpServletResponse response, @PathVariable(name = "fileName") String fileName) {

InputStream in=null;

try {

//获取文件对象 stat原信息

ObjectStat stat =minioClient.statObject(MinioProp.MINIO_BUCKET, fileName);

response.setContentType(stat.contentType());

response.setContentType("application/octet-stream; charset=UTF-8");

in = minioClient.getObject(MinioProp.MINIO_BUCKET, fileName);

IOUtils.copy(in,response.getOutputStream());

}catch (Exception e){

e.printStackTrace();

}finally {

if(in!=null){

try {

in.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

}

使用postman测试

浏览器直接访问

spring cloud 文件服务器,SpringBoot集成MinIO文件服务器相关推荐

  1. springboot 集成MinIo 文件服务器

    springboot 集成 MinIo 文件服务器 1.添加依赖 dependency><groupId>io.minio</groupId><artifactId ...

  2. Springboot项目集成Minio文件服务器(下)

    Springboot项目集成Minio文件服务器(下) 1.配置依赖 在pom文件里面配置Minio的相关依赖. <!--添加minio的依赖--><dependency>&l ...

  3. SpringBoot集成MinIo实现资源库功能

    项目背景 要实现一个资源库的功能,实现图片.文件.视频等资源的上传和下载. 项目git地址,还没完全完成 https://github.com/zhumengting/resource-managem ...

  4. minio的安装和springboot集成minio

    文章目录 1.什么是minio 1.1 minio的优点 1.2 MinIO的基础概念 1.3 纠删码EC (Erasure Code) 1.4 存储形式 1.5 存储方案 2 MinIO环境搭建 2 ...

  5. 【java_wxid项目】【第十六章】【Spring Cloud Alibaba Sentinel集成】

    主项目链接:https://gitee.com/java_wxid/java_wxid 项目架构及博文总结: 点击:[使用Spring Boot快速构建应用] 点击:[使用Spring Cloud O ...

  6. 【java_wxid项目】【第七章】【Spring Cloud Security Oauth2集成】

    主项目链接:https://gitee.com/java_wxid/java_wxid 项目架构及博文总结: 点击:[使用Spring Boot快速构建应用] 点击:[使用Spring Cloud O ...

  7. SpringBoot笔记:SpringBoot集成MinIO分布式文件系统

    文章目录 搭建MinIO集群 SpringBoot集成 添加依赖 添加配置 获取MinioClient MinioUtils完整工具类 测试代码 搭建MinIO集群 首先搭建MinIO的分布式集群,集 ...

  8. Spring Cloud H SR5集成 Jaeger

    Spring Cloud H SR5 集成Jaeger 该文章主要讲述Spring Cloud H SR5集成 opentracing-spring-jaeger-cloud-starter 3.1. ...

  9. spring cloud sream 统一集成mq中间件

    spring cloud sream: 一个通道(入,出)对应一个主题 入,出对应于服务将 出通道---队列---入通道 binder :集成任意消息中间件的组件--建立连接,集成多个kafka就用多 ...

最新文章

  1. find的命令的使用和文件名的后缀
  2. 【HoorayOS】开源的Web桌面应用框架(第二版 v120311)
  3. 【CSDN】Markdown 如何画分界线
  4. 用两种不同的方法导出ORACLE 查询数据为CSV 文件 (python 代码 与 使用 utl_file 包)
  5. 使用JNA的透明JFrame
  6. unoconv 在线预览 doc,doxc,xls,xlsx,ppt,pptx 文件功能环境搭建
  7. 测试基础【第二篇】软件测试模型
  8. 回归方程的拟合优度检验_线性回归模型的拟合优度检验方法分析.ppt
  9. Word2Vec模型之训练篇
  10. Excel小技巧-获取列数
  11. 通过 api 调用检查具体日期是否为法定节假日
  12. 解决双启动GRLDR missing故障的方法
  13. Hyper-V的虚拟化架构
  14. type是python保留字_Python保留字总结
  15. 北京社保医院选择办法-附A类医保定点医院名单
  16. e480换高分屏_ThinkPadE480电脑(i5-8250u 8G内存 256G固态 高分屏0QCD 14英寸) 京东5699元...
  17. 4418. 选元素(动态规划)
  18. 计算机类论文综述的写法(转…
  19. 计算机制图用什么图纸,制图用什么笔记本好
  20. 串级PID与单极PID的区别

热门文章

  1. 学习OpenCV(5) opencv3.4 with CUDA编译
  2. 2023广州大学计算机考研信息汇总
  3. python 的没落_随着python的崛起,Java是否会在未来几年没落?
  4. tgp饥荒服务器文件夹,《饥荒》TGP版服务器搭建及设置图文教程 TGP版怎么建服务器...
  5. 计算机科学原理ap关于什么,3分钟读懂AP计算机科学原理和计算机科学A的区别!...
  6. CTFSHOW SQL注入篇(211-230)
  7. Python游戏之Pygame——太空飞机大战(四)
  8. 一个前端对七个后端?别说难,你可能连工作都找不到
  9. Ubuntu安装超好用的Edge浏览器
  10. pc端签名 vue 生成图片_vue 实现手写电子签名