minio-上手
搭建(docker)
执行命令
docker run -d
-p 9000:9000 -p 9090:9090
-e "MINIO_ACCESS_KEY=用户名"
-e "MINIO_SECRET_KEY=密码"
-v /data/minio:/data
minio/minio
server /data
--console-address ":9000" --address:":9090"
说明
- 端口:如果只使用页面访问,映射一个9000即可,api需要使用9090
- 用户名和密码:用户名长度不能低于3,密码长度不能低于8,如果不指定默认都是
minioadmin
- –console-address “:9000” --address:“:9090”:minio默认api端口是动态的,通过这种方式进行固定
部署完毕可以通过http://host:9000
访问
使用
- 导入依赖
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.2.1</version>
</dependency>
- 进行配置
@Bean
public MinioClient minioClient(){
return MinioClient.builder()
.endpoint("api url")
.credentials("用户名","密码")
.build();
}
- 操作
上传文件
public void upload(MultipartFile file){
try {
minioClient.putObject(PutObjectArgs.builder()
.bucket("bucketName")
.object(file.getOriginalFilename())
.stream(file.getInputStream(),file.getSize(),-1)
.contentType(file.getContentType())
.build());
}catch (Exception e){
e.printStackTrace();
}
}
获取访问url
public String getUrl(String objectName,int time,TimeUnit timeUnit){
try {
return minioClient.getPresignedObjectUrl(GetPresignedObjectUrlArgs
.builder()
.method(Method.GET)
.bucket("bucketName")
.object(objectName)
.expiry(time,timeUnit)
.build());
}catch (Exception e){
e.printStackTrace();
}
return null;
}