1、不同存储方式的对比:
2、 分布式文件系统对比
3、MinIO的特点
MinIO特点
-
数据保护:Minio使用Minio Erasure Code(纠删码)来防止硬件故障。即便损坏一半以上的driver,但是仍然可以从中恢复。
-
高性能:作为高性能对象存储,在标准硬件条件下它能达到55GB/s的读、35GB/s的写速率
-
可扩容:不同MinIO集群可以组成联邦,并形成一个全局的命名空间,并跨越多个数据中心
-
SDK支持:基于Minio轻量的特点,它得到类似Java、Python或Go等语言的sdk支持
-
有操作页面:面向用户友好的简单操作界面,非常方便的管理Bucket及里面的文件资源
-
功能简单:这一设计原则让MinIO不容易出错、更快启动
-
丰富的API:支持文件资源的分享连接及分享链接的过期策略、存储桶操作、文件列表访问及文件上传下载的基本功能等。
-
文件变化主动通知:存储桶(Bucket)如果发生改变,比如上传对象和删除对象,可以使用存储桶事件通知机制进行监控,并通过以下方式发布出去:AMQP、MQTT、Elasticsearch、Redis、NATS、MySQL、Kafka、Webhooks等。
4、基本概念
bucket——类比于文件系统的目录
Object——类比文件系统的文件
Keys——类比文件名
5、创建MinIO代码如下
docker run -p 9000:9000 --name minio -d --restart=always -e "MINIO_ACCESS_KEY=minio" -e "MINIO_SECRET_KEY=minio123" -v /home/data:/data -v /home/config:/root/.minio minio/minio server /data
虚拟机终端效果如图:
其中命令:
docker load -i minio.tar
作用为加载上传上去的minio.tar文件
6、验证是否已经创建好MinIO分布式文件系统
在浏览器中访问http://192.168.76.132:9000/其中服务器地址192.168.76.132,minio端口号9000;
能够打开以上minio登入界面,即说明成功。
7、在idea中上传主机中已有的list.html文件到MinIO代码如下
public class MinIOTest {
/**
* 把list.html文件上传到minio中,并且可以在浏览器中访问。
* @param args
*/
public static void main(String[] args) {
FileInputStream fileInputStream = null;
try {
fileInputStream = new FileInputStream("D:\\develop\\list.html");;
//1.创建minio链接客户端
MinioClient minioClient = MinioClient.builder().credentials("minio", "minio123").endpoint("http://192.168.76.132:9000").build();
//2.上传
PutObjectArgs putObjectArgs = PutObjectArgs.builder()
.object("list.html")//文件名
.contentType("text/html")//文件类型
.bucket("leadnews")//桶名词 与minio创建的名词一致
.stream(fileInputStream, fileInputStream.available(), -1) //文件流
.build();
minioClient.putObject(putObjectArgs);
System.out.println("http://192.168.76.132:9000/leadnews/list.html");
} catch (Exception ex) {
ex.printStackTrace();
}
}
运行结束之后即可在minio客户端看到上传上去的文件:
8、将封装minio为start:Day2-20-MinIO-封装为starter使用_哔哩哔哩_bilibili
封装 MinIO 为一个启动脚本(例如命名为start
)的主要目的是简化 MinIO 的启动过程,并提供一个统一的入口点来管理 MinIO 服务。这样做的好处包括:
-
简化启动过程:通过封装为脚本,用户可以使用一个简单的命令来启动 MinIO,而无需记住复杂的启动命令和参数。
-
统一管理:将 MinIO 启动封装为一个脚本,可以更方便地进行统一管理和维护。用户可以通过相同的方式启动、停止和重启 MinIO 服务,使管理更加简洁高效。
-
参数化配置:启动脚本可以允许用户通过参数来配置 MinIO 启动时的参数,例如端口号、存储路径、访问密钥等,使用户能够根据需求进行灵活配置。
-
易于部署和分享:封装为启动脚本后,可以轻松地将 MinIO 部署到其他环境中,而不必担心复杂的配置和依赖。同时,也方便与他人分享和交流,使得部署和使用更加便捷。
总之,将 MinIO 封装为一个启动脚本能够提高用户的使用体验,简化管理和部署过程,使得 MinIO 的使用更加方便和高效。