minio
一、概述
使用java语言整合minio
准备工作:
java(maven)
-
minio server
root@ubuntu:/minio# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 69916d0c5a05 minio/minio "/usr/bin/docker-ent…" 2 hours ago Up 2 hours 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp, 0.0.0.0:9988->9988/tcp, :::9988->9988/tcp minio01
二、实践
案例一:
上传图片到桶中
第一步
导入依赖:
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.3.0</version>
</dependency>
<dependency>
<groupId>me.tongfei</groupId>
<artifactId>progressbar</artifactId>
<version>0.5.3</version>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.8.1</version>
</dependency>
第二步
编写业务代码
- 创建MinioClient对象(host username password)
- 校验桶是否存在
- 存在就上传数据
- 不存在就创建一个桶
代码:
public class MinioDemo01 {
public static void main(String[] args) {
try {
MinioClient minioClient = MinioClient.builder()
.endpoint("http://192.168.131.130:9000/")
.credentials("admin","admin123")
.build();
String bucketName = "miniotojava01";
boolean found = minioClient.bucketExists(BucketExistsArgs.
builder().bucket(bucketName).build());
if (!found){
// 新建一个桶
minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());
}
minioClient.uploadObject(
UploadObjectArgs.builder()
.bucket(bucketName)
.object("moto.jpg")
.filename("D:\\czbk\\minio_java_01\\moto.jpg") // 本地磁盘的路径
.build()
);
System.out.println("上传成功");
}catch (Exception e){
e.printStackTrace();
}
}
}
最后效果:
图示
三、注意
使用minio整合时有几点要点(踩过的坑)
- host中的端口 使用9000(默认)而不是 静态路径(自己写的)
- 看准账号 密码是否正确
- uploadObject方法中 filename中参数为本地磁盘的路径 绝对路径