MinIO学习笔记
MinIO简介
MINIO干什么用的: AI数据基础设施的对象存储
- 为人工智能系统提供数据支持,数据存储;
- 对象存储(Object Storage)是一种数据
存储架构
,它以对象
为单位来处理、存储和检索数据,每个对象都包含了数据本身
以及元数据
; - MinIO存储的元数据主要包括对象的描述信息,如用户(account)、存储桶(bucket)以及存储桶索引(bucket index)等;
- 对象存储系统通常通过基于HTTP或HTTPS协议的API(应用程序编程接口)进行数据读写;
MINIO是使用go语言
进行开发的。
MinIO具有双重许可:
- 开源GNU AGPL v3;(完全免费)
- 商业企业许可证;(收费)
在下载的时候就可以选择免费的AGPL许可。
MINIO的下载(LINUX版本):
wget https://dl.min.io/server/minio/release/linux-amd64/minio #下载
chmod +x minio #赋予可执行权限
MINIO_ROOT_USER=admin MINIO_ROOT_PASSWORD=password ./minio server /mnt/data --console-address ":9001" #MINIO服务启动
MINIO_ROOT_USER
:指定MinIO的用户名;MINIO_ROOT_PASSWORD
:指定MinIO的密码;/mnt/data
:指定MinIO服务器用于存储数据的目录;console-address ":9001"
:指定MinIO控制台的监听地址和端口
使用Docker启动运行MinIO:
- 拉取镜像
docker pull minio/minio
- 启动MinIO容器:
docker run -p 9000:9000 -p 9001:9001 minio/minio server /mnt/docker/data --console-address :9001
Springboot整合Minio
- 导入依赖
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.2.1</version>
</dependency>
- 编写config配置类
package com.example.springboot_demo.config;
import io.minio.MinioClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MinIOConfig {
@Bean
public MinioClient minioClient(){
return MinioClient.builder()
.endpoint("http://192.168.114.128:9000")
.credentials("minioadmin","minioadmin").build();
}
}
- 编写service
package com.example.springboot_demo.service;
import io.minio.MinioClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Service;
@Service
public class MinIOService {
@Autowired
private MinioClient minioClient;
public void testMinioClient(){
System.out.println(minioClient);
}
}
- 写测试代码
package com.example.springboot_demo;
import com.example.springboot_demo.service.MinIOService;
import org.junit.jupiter