docker安装 minio
docker pull minio/minio
#创建并运行容器 初始化登录的账号密码 映射本地目录和docker目录的镜像 配置服务端口号
docker run -p 9000:9000 -p 9001:9001 --name minio -d --restart=always
-e "MINIO_ROOT_USER=admin" -e "MINIO_ROOT_PASSWORD=admin123456"
-v /home/data:/data -v /home/config:/root/.minio
minio/minio server /data --console-address ":9001"
#检查当前minio是否运行
docker ps
初始化minio客户端 并实现上传文件的功能
@Value("${minio.endpointUrl}")
public String endpointUrl;
@Value("${minio.accessKey}")
public String accessKsy;
@Value("${minio.secreKey}")
public String secreKey;
@Value("${minio.bucketName}")
public String bucketName;
@ApiOperation(value = "minio文件上传,文件上传成功返回文件上传的路径")
@PostMapping("fileUpload")
public Result fileUpload(MultipartFile file) throws Exception{
String url = "";
MinioClient minioClient = MinioClient.builder()
.endpoint(endpointUrl)
.credentials(accessKsy,secreKey)
.build();
boolean isExist = minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build());
if(isExist){
System.out.println(bucketName+"-----储存桶已经存在,直接上传文件");
}else {
System.out.println("创建一个名为----"+bucketName+"---的储存桶");
}
minioClient.makeBucket(MakeBucketArgs.builder()
.bucket(bucketName)
.build());
String fileName = System.currentTimeMillis()+ UUID.randomUUID().toString();
minioClient.putObject(
PutObjectArgs.builder().bucket(bucketName)
.object(fileName)
.stream(file.getInputStream(),file.getSize(),-1)
.contentType(file.getContentType())
.build());
url = endpointUrl+"/"+bucketName+"/"+fileName;
return Result.ok(url);
其它的方式
| Minio中文文档