springboot整合minio实现文件上传下载

服务器准备

  • 两台linux服务器,每台挂载2块硬盘
  • 共2个minio节点,4块磁盘
  1. 2台虚拟机各添加2块1G的硬盘;
  2. 分区、格式化、挂载到指定文件夹(命令见语雀linux命令);

部署Minio服务

节点 ip 磁盘
minio node1 192.168.2.32 /newdisk1, /newdisk2
minio node2 192.168.2.33 /newdisk1, /newdisk2
nginx 192.168.2.32 /usr/local/nginx
  • MINIO_ROOT_USER:用户名,长度最小是 5 个字符;

  • MINIO_ROOT_PASSWORD:密码,密码不能设置过于简单,不然 minio 会启动失败,长度最小是 8 个字符;

  • –config-dir:指定集群配置文件目录;

  • –address:api 的端口,默认是9000

  • --console-address :web 后台端口,默认随机;

# 创建minio所用目录
mkdir -p /home/minio/{run,conf} && mkdir -p /etc/minio

# 下载minio上传到此文件夹
cd /home/minio/run
chmod +x minio

# 编写启动脚本(/home/minio/run/minio-run.sh)
#!/bin/bash
export MINIO_ROOT_USER=minioadmin
export MINIO_ROOT_PASSWORD=minioadmin
/home/minio/run/minio server --config-dir /home/minio/conf \
--address "192.168.2.32:9000" --console-address ":50000" \
http://192.168.2.32/newdisk1 http://192.168.2.32/newdisk2 \
http://192.168.2.33/newdisk1 http://192.168.2.33/newdisk2 \

# 执行启动脚本
sh minio-run.sh
  • 在2台服务器上都执行此操作,注意在2.33上执行时,把脚本里的address的ip改成本机;
  • 2台都启动后minio集群部署成功;
  • 启动后访问2台服务器的50000端口,查看控制台是否正常访问;

使用nginx负载均衡

# 编辑nginx配置文件
upstream minio_server {
    server 192.168.2.32:9000;
    server 192.168.2.33:9000;
}
upstream minio_console {
    server 192.168.2.32:50000;
    server 192.168.2.33:50000;
}
server{
    listen       9001;
    server_name  192.168.2.32;
    ignore_invalid_headers off;
    client_max_body_size 0;
    proxy_buffering off;
    location / {
        proxy_set_header   X-Forwarded-Proto $scheme;
        proxy_set_header   Host              $http_host;
        proxy_set_header   X-Real-IP         $remote_addr;
        proxy_connect_timeout 300;
        proxy_http_version 1.1;
        chunked_transfer_encoding off;
        proxy_ignore_client_abort on;
        proxy_pass http://minio_server;
    }
}
server{
    listen       50001;
    server_name  192.168.2.32;
    ignore_invalid_headers off;
    client_max_body_size 0;
    proxy_buffering off;
    location / {
        proxy_set_header   X-Forwarded-Proto $scheme;
        proxy_set_header   Host              $http_host;
        proxy_set_header   X-Real-IP         $remote_addr;
        proxy_connect_timeout 300;
        proxy_http_version 1.1;
        chunked_transfer_encoding off;
        proxy_ignore_client_abort on;
        proxy_pass http://minio_console;
    }
}



# reload配置文件
./nginx -s reload
  • 使用192.168.2.32:50001访问

整合到springboot

依赖

<dependency>
            <groupId>io.minio</groupId>
            <artifactId>minio</artifactId>
            <version>8.4.5</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.9</version>
        </dependency>

配置文件

minio:
  endpoint: http://192.168.2.32:9001
  accessKey: minioadmin
  secretKey: minioadmin
  bucketName: weiz-test

  • MinioConfig
package com.start.config;

import io.minio.MinioClient;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Data
@Configuration
public class MinioConfig {

    @Value("${minio.endpoint}")
    private String endpoint;

    @Value("${minio.accessKey}")
    private String accessKey;

    @Value("${minio.secretKey}")
    private Str
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值