文章目录
- 一、前提准备
- 二、文件配置
- 1. `.env`
- 2. `env/minio.env`
- 3. `docker-compose-minio.yml`
- 三、测试
- 四、Java测试
- 1. 引入依赖
- 2. 增删改
一、前提准备
准备如下文件夹和文件
./
├── docker-compose-minio.yml
├── .env
├── env
│ ├── minio.env
├── minio
│ ├── minio1
│ │ ├── data1
│ │ └── data2
│ ├── minio2
│ │ ├── data1
│ │ └── data2
│ ├── minio3
│ │ ├── data1
│ │ └── data2
│ └── minio4
│ ├── data1
│ └── data2
二、文件配置
1. .env
MINIO_VERSION=RELEASE.2024-01-29T03-56-32Z
2. env/minio.env
MINIO_ROOT_USER=minio
MINIO_ROOT_PASSWORD=minio123
3. docker-compose-minio.yml
version: "3.8"
networks:docker_xuecheng:ipam:config:- subnet: 172.20.0.0/16services:minio1:container_name: minio1image: minio/minio:${MINIO_VERSION}volumes:- ./minio/minio1/data1:/data1- ./minio/minio1/data2:/data2ports:- "9001:9000"- "9011:9001"env_file:- ./env/minio.envcommand: server --address ":9000" --console-address ":9001" http://172.20.2.{1...4}/data{1...2}networks:docker_xuecheng:ipv4_address: 172.20.2.1minio2:container_name: minio2image: minio/minio:${MINIO_VERSION}volumes:- ./minio/minio2/data1:/data1- ./minio/minio2/data2:/data2ports:- "9002:9000"- "9012:9001"env_file:- ./env/minio.envcommand: server --address ":9000" --console-address ":9001" http://172.20.2.{1...4}/data{1...2}networks:docker_xuecheng:ipv4_address: 172.20.2.2minio3:container_name: minio3image: minio/minio:${MINIO_VERSION}volumes:- ./minio/minio3/data1:/data1- ./minio/minio3/data2:/data2ports:- "9003:9000"- "9013:9001"env_file:- ./env/minio.envcommand: server --address ":9000" --console-address ":9001" http://172.20.2.{1...4}/data{1...2}networks:docker_xuecheng:ipv4_address: 172.20.2.3minio4:container_name: minio4image: minio/minio:${MINIO_VERSION}volumes:- ./minio/minio4/data1:/data1- ./minio/minio4/data2:/data2ports:- "9004:9000"- "9014:9001"env_file:- ./env/minio.envcommand: server --address ":9000" --console-address ":9001" http://172.20.2.{1...4}/data{1...2}networks:docker_xuecheng:ipv4_address: 172.20.2.4
三、测试
访问宿主机ip:9011
,输入账号密码。
MINIO_ROOT_USER=minio
MINIO_ROOT_PASSWORD=minio123
点到Monitoring
-> Metrics
四、Java测试
1. 引入依赖
<dependency><groupId>io.minio</groupId><artifactId>minio</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>
2. 增删改
在这之前先去网页端,创建一个Bucket
package com.xuecheng.media;import io.minio.*;
import io.minio.errors.*;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.compress.utils.IOUtils;
import org.junit.jupiter.api.Test;import java.io.*;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;public class MinioTest {private MinioClient minioClient = MinioClient.builder().endpoint("http://192.168.101.65:9001") //改成你的宿主机ip.credentials("minio", "minio123").build();@Testpublic void testCreate() throws IOException, ServerException, InsufficientDataException, ErrorResponseException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException {ObjectWriteResponse file = minioClient.uploadObject(UploadObjectArgs.builder().bucket("test").filename("C:\\Users\\mumu\\Desktop\\1C6091EF9671978A9F1B6C6F8A3666FD.png").object("1.png").build());}@Testpublic void testDelete() throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException {minioClient.removeObject(RemoveObjectArgs.builder().bucket("test").object("12.msi").build());}@Testpublic void testGet() throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException {InputStream inputStream = minioClient.getObject(GetObjectArgs.builder().bucket("test").object("1.png").build());FileOutputStream outputStream = new FileOutputStream(new File("C:\\Users\\mumu\\Desktop\\2.png"));IOUtils.copy(inputStream, outputStream);}}