1.搜索minio镜像
docker search minio
2.拉取镜像
docker pull minio/minio
3.运行minio容器
docker run -p 19000:19000 -p 19001:19001 \
--name minio \
-d --restart=always \
-e "MINIO_ACCESS_KEY=root" \
-e "MINIO_SECRET_KEY=12345678" \
-v /mydata/minio/data:/data \
minio/minio server \
/data --console-address ":19001" -address ":19000"
#命令介绍
#-e "MINIO_ACCESS_KEY=root" 登录用户这里写的root
#-e "MINIO_SECRET_KEY=12345678" 登录密码这里写的12345678
# /data --console-address ":19001"控制台访问端口 -address ":19000"代码上传端口
#
4.访问控制台,输入上面写的用户和密码
http://192.168.48.128:19001/login
5.创建桶,设置权限
6.java代码实现上传,先加依赖
<dependency> <groupId>io.minio</groupId> <artifactId>minio</artifactId> <version>8.2.1</version> </dependency>
@Configuration
public class MinioConfig {
@Bean
public MinioClient minioClient() {
return MinioClient.builder()
.endpoint("http://192.168.48.128:19000")
.credentials("root", "12345678")
.build();
}
}
//-------------------------------------------
public class MinioUtil {
@Autowired
private MinioClient minioClient;
public String uploadFile(MultipartFile file) throws Exception {
String originalFileName = file.getOriginalFilename();
String contentType = file.getContentType();
String key = UUID.randomUUID().toString().replace("-", "");
String suffix = originalFileName.substring(originalFileName.lastIndexOf("."));
String objectName = String.format("%s%s", key, suffix);
minioClient.putObject(PutObjectArgs.builder()
// 桶名
.bucket("test01")
.object(objectName)
.stream(file.getInputStream(), file.getSize(), -1)
.contentType(contentType)
.build());
String url = String.format("%s/%s/%s", "http://192.168.48.128:19000", "test01", objectName);
System.out.println("访问路径"+url);
return url;
}
}