MinIO 是一款基于Go语言发开的高性能、分布式的对象存储系统。客户端支持Java,Net,Python,Javacript, Golang语言。
官网教程:https://min.io/docs/minio/container/index.html
mkdir -p ~/minio/data
docker run \-p 9000:9000 \-p 9090:9090 \--name minio \-v ~/minio/data:/data \-e "MINIO_ROOT_USER=ROOTNAME" \-e "MINIO_ROOT_PASSWORD=CHANGEME123" \quay.io/minio/minio server /data --console-address ":9090"
参考:https://blog.csdn.net/ac1992122633/article/details/124135515
docker-compose.yaml
version: '3.7'# 所有容器通用的设置和配置
x-minio-common: &minio-commonimage: minio/miniocommand: server --console-address ":9001" http://minio{1...4}/dataexpose:- "9000"# environment:# MINIO_ROOT_USER: minioadmin# MINIO_ROOT_PASSWORD: minioadminhealthcheck:test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]interval: 30stimeout: 20sretries: 3# 启动4个docker容器运行minio服务器实例
# 使用nginx反向代理9000端口,负载均衡, 你可以通过9001、9002、9003、9004端口访问它们的web console
services:minio1:<<: *minio-commonhostname: minio1ports:- "9001:9001"volumes:- ./data/data1:/dataminio2:<<: *minio-commonhostname: minio2ports:- "9002:9001"volumes:- ./data/data2:/dataminio3:<<: *minio-commonhostname: minio3ports:- "9003:9001"volumes:- ./data/data3:/dataminio4:<<: *minio-commonhostname: minio4ports:- "9004:9001"volumes:- ./data/data4:/datanginx:image: nginx:1.19.2-alpinehostname: nginxvolumes:- ./config/nginx.conf:/etc/nginx/nginx.conf:roports:- "9000:9000"depends_on:- minio1- minio2- minio3- minio4
https://www.jianshu.com/p/62be21930f97
https://www.jianshu.com/p/f1f56fe9f479
docker run -d --name minio \
-p 9000:9000 \
-p 9001:9001 \
--restart=always --net=host \
-e MINIO_ACCESS_KEY=minio \
-e MINIO_SECRET_KEY=123456 \
-v /home/minio/config:/root/.minio \
-v /home/minio/data1:/data1 \
-v /home/minio/data2:/data2 \
-v /home/minio/data3:/data3 \
-v /home/minio/data4:/data4 \
minio/minio server http://minio{1...2}/data{1...4} \
--console-address ":9001"
https://min.io/docs/minio/linux/developers/java/minio-java.html#minio-java-quickstart
pom.xml
4.0.0 org.springframework.boot spring-boot-starter-parent 2.1.1.RELEASE com.example MinIO 0.0.1-SNAPSHOT MinIO MinIO 1.8 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test io.minio minio 8.4.6 com.squareup.okhttp3 okhttp com.squareup.okhttp3 okhttp 4.10.0 org.jetbrains.kotlin kotlin-stdlib 1.3.70 org.springframework.boot spring-boot-maven-plugin
FileUploader
package com.example.minio;
import io.minio.BucketExistsArgs;
import io.minio.MakeBucketArgs;
import io.minio.MinioClient;
import io.minio.UploadObjectArgs;
import io.minio.errors.MinioException;
import java.io.IOException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;public class FileUploader {public static void main(String[] args)throws IOException, NoSuchAlgorithmException, InvalidKeyException {try {// Create a minioClient with the MinIO server playground, its access key and secret key.MinioClient minioClient =MinioClient.builder().endpoint("http://10.86.97.145:9000").credentials("ROOTNAME", "CHANGEME123").build();// Make 'asiatrip' bucket if not exist.boolean found =minioClient.bucketExists(BucketExistsArgs.builder().bucket("asiatrip").build());if (!found) {// Make a new bucket called 'asiatrip'.minioClient.makeBucket(MakeBucketArgs.builder().bucket("asiatrip").build());} else {System.out.println("Bucket 'asiatrip' already exists.");}// Upload '/home/user/Photos/asiaphotos.zip' as object name 'asiaphotos-2015.zip' to bucket// 'asiatrip'.minioClient.uploadObject(UploadObjectArgs.builder().bucket("asiatrip").object("asiaphotos-2015.zip").filename("D:/Desktop/minIO-test.zip").build());System.out.println("'D:/Desktop/minIO-test.zip' is successfully uploaded as "+ "object 'asiaphotos-2015.zip' to bucket 'asiatrip'.");} catch (MinioException e) {System.out.println("Error occurred: " + e);System.out.println("HTTP trace: " + e.httpTrace());}}
}
https://www.cnblogs.com/lwqstyle/p/16587503.html
https://www.shuzhiduo.com/A/Ae5RNEk35Q/
chmod +x mc
./mc config host add minio http://minio1:9000 minio(MINIO_ROOT_USER) 123456(MINIO_ROOT_PASSWORD) --api S3v4
./mc anonymous set public minio/ebrms(mc policy set public minio连接名称/桶名)
Minio对象存储系统适用于大文件场景,海量小文件的场景下并不适合。
https://max.book118.com/html/2022/0412/6121130212004133.shtm
https://www.jianshu.com/p/c084ed1057c9