简介
- Golang语言实现
- 兼容亚马逊S3云存储服务接口,适合存储大量非结构化数据
- 官方文档:MinIO
Docker安装MinIO
- 创建并运行容器
docker run -d \ --name minio \ -p 9000:9000 \ --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
|
- 在浏览器输入
http://192.168.140.102:9000/
后即可看到minio控制台
操作MinIO
- 引入minio依赖
<dependency> <groupId>io.minio</groupId> <artifactId>minio</artifactId> <version>7.1.0</version> </dependency>
|
- 操作minio
public static void main(String[] args) throws Exception { FileInputStream fis = new FileInputStream("d:\\list.html"); MinioClient minioClient = MinioClient.builder() .credentials("minio", "minio123") .endpoint("http://192.168.140.102:9000") .build(); PutObjectArgs putObjectArgs = PutObjectArgs.builder() .object("list.html") .contentType("text/html") .bucket("leadnews") .stream(fis, fis.available(), -1) .build(); minioClient.putObject(putObjectArgs); System.out.println("http://192.168.140.102:9000/leadnews/list.html"); }
|
封装MinIO为starter
【问题】:可能有不止一个微服务需要用到minio,如果在每个微服务都去集成minio会很麻烦。
【解决】:把文件微服务抽取出来,抽取minio变成一个文件微服务。