spring boot 集成minIo
作者:互联网
minio的安装与配置
1、什么是 MinIO?
MinIO 是一款高性能、分布式的对象存储系统。
对象存储服务OSS(Object Storage Service)是一种海量、安全、低成本、高可靠的云存储服务,适合存放任意类型的文件。容量和处理能力弹性扩展,多种存储类型供选择,全面优化存储成本。
MinIO 可以作为私有云的对象存储服务来使用。
官方介绍:http://www.minio.org.cn/overview.shtml#
2、minio的安装
2.1、Windows安装包下载
可以从https://min.io/download#/windows
下载minio.exe
可执行的文件。
提示:如果觉得官网下载慢,可以使用我分享的网盘地址: https://pan.baidu.com/s/1E9J52g6uW_VFWY34fHL6zA 提取码: vneh
初始化目录
新建一个目录存放minio
文件,例如D:\minioData
启动
直接在cmd
下运行minio.exe server D:\minioData
可以使用 --console-address ":9001"
来选择特定接口和端口。
2.2、Docker安装
初始化目录
mkdir /minio`
`mkdir /minio/data`
`mkdir /minio/config
拉取镜像
docker pull minio/minio
启动镜像
docker run -p 9000:9000 -p 9000:9001 --name minio \
-e "MINIO_ROOT_USER=dapeng" \
-e "MINIO_ROOT_PASSWORD=kbC***!@#apoka" \
-v /mydata/minio/data:/data \
-v /mydata/minio/config:/root/.minio \
-d minio/minio server /data --console-address ":9001"
查看启动日志:
docker logs minio
2.3、打开控制台
minio提供了一个可视化的管理控制平台,安装好之后,在浏览器中输入(http://localhost:9000/ )就可以访问了,默认的用户名和密码都是minioadmin
3、minio简单使用
3.1、创建桶
3.2、上传图片
3.3、访问策略
3.4、访问文件
http://192.168.120.22:9000/bucket-test/1.jpg
因为直接上传的content-type
是application/octet-stream
,会导致访问的时候直接下载。
3、在框架中使用
3.1、配置文件
在文件服务的配置文件上。
# Minio配置
minio:
url: http://127.0.0.1:9090
# 账号
accessKey: minioadmin
# 密码
secretKey: minioadmin
# MinIO桶名字
bucketName: bucket-test
3.2、添加配置
/**
* Minio 配置信息
*
*/
@Configuration
@ConfigurationProperties(prefix = "minio")
@Data
public class MinioConfig
{
/**
* 服务地址
*/
private String url;
/**
* 用户名
*/
private String accessKey;
/**
* 密码
*/
private String secretKey;
/**
* 存储桶名称
*/
private String bucketName;
@Bean
public MinioClient getMinioClient()
{
return MinioClient.builder().endpoint(url).credentials(accessKey, secretKey).build();
}
}
3.3、添加接口
/**
* minio文件上传例子
*/
@PostMapping("/minioDemo")
public AjaxResult minioDemo(MultipartFile file) throws IOException, ServerException, InsufficientDataException, InternalException, InvalidResponseException, InvalidKeyException, NoSuchAlgorithmException, XmlParserException, ErrorResponseException {
String fileName = FileUploadUtils.extractFilename(file);
PutObjectArgs args = PutObjectArgs.builder()
.bucket(minioConfig.getBucketName())
.object(fileName)
.stream(file.getInputStream(), file.getSize(), -1)
.contentType(file.getContentType())
.build();
client.putObject(args);
Object path = minioConfig.getUrl() + "/" + minioConfig.getBucketName() + "/" + fileName;
return AjaxResult.success(path);
}
测试查看结果:
标签:存储,String,spring,minio,boot,private,file,9000,minIo 来源: https://www.cnblogs.com/galenblog/p/16277521.html