Python 官方文档:入门教程 => 点击学习
目录背景MiNIO安装部署配置pom文件配置yml文件Minio工具类初始化client上传文件下载文件删除文件背景 公司的开发框架集成了附件本地存储,阿里云,华为云等,现项目有要求
公司的开发框架集成了附件本地存储,阿里云,华为云等,现项目有要求附件存储与应用部署环境不能是同一台服务器,也不能使用云存储,经过技术选型后决定框架整合minio,将minio部署在另一台服务器开通外网端口即可解决问题
下载minio安装部署包,创建对应配置文件,这里提供一个整合后的压缩包
下载地址:Http://xiazai.jb51.net/202204/yuanma/minio_jb51.rar
创建minioData文件夹作为文件存储路径,解压安装包根据放置路径修改对应配置文件文件
minio-service.xml和run.bat
<service>
<id>minio</id>
<name>MinIO Service</name>
<description>MinIO is a High PerfORMance Object Storage</description>
<logpath>D:\minio\logs</logpath>
<log mode="roll-by-size">
<sizeThreshold>10240</sizeThreshold>
<keepFiles>8</keepFiles>
</log>
<executable>D:\minio\run.bat</executable>
</service>
set MINIO_ACCESS_KEY=admin
set MINIO_SECRET_KEY=abcd@1234
minio.exe server -address :9999 D:\minioData
解压部署包后cmd进入对应解压路径,输入命令minio.exe server D:\minioData 初始化后关闭cmd命令
使用服务安装工具安装服务,选择minio-service.exe
windows服务安装工具下载地址:http://xiazai.jb51.net/202204/yuanma/windowsfuwu_jb51.rar
启动服务后访问 http://127.0.0.1:9999/
用户名:admin 密码:abcd@1234 (端口及账户密码都是在run.bat文件中配置的)
进入系统创建bucket用于存储文件(类似于阿里云)
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>7.1.0</version>
</dependency>
这里分别配置上传/下载地址是正式项目可能配置外网端口后,服务器中不能访问对应的外网端口,上传走内网,下载走外网
#minio配置
# 上传地址
minio_uploadurl: http://192.168.1.42:9999/
# 下载地址
minio_downloadurl: http://192.168.1.42:9999/
# 账户
minio_accesskey: admin
# 密码
minio_secrecTKEy: abcd@1234
# 存储文件夹
minio_bucknetname: xxx
public Minioclient InitMinio() {
MinioClient minioClient = MinioClient.builder().
endpoint(frameConfig.getMinio_uploadurl()). credentials(frameConfig.getMinio_accesskey(),frameConfig.getMinio_secrectkey()).build();
try{
boolean isExist = minioClient.bucketExists(frameConfig.getMinio_bucknetname());
if (!isExist) {
minioClient.makeBucket(frameConfig.getMinio_bucknetname());
}
}catch (Exception e){
e.printStackTrace();
}
return minioClient;
}
getkey方法只是指定对应的自定义存储路径
指定content-type是为了浏览器能打开附件时,图片和pdf等文件能够在线浏览
不指定默认都是stream,打开文件统一为下载
public boolean uploadMinioFile(InputStream stream, AttachmentDO attachmentDO,String contentType){
boolean result = true;
try{
MinioClient minioClient = InitMinio();
String bucketName =frameConfig.getMinio_bucknetname();
PutObjectOptions option = new PutObjectOptions(stream.available(), -1);
option.setContentType(contentType);
minioClient.putObject(bucketName,getKey(attachmentDO),stream,option);
}catch (Exception e){
logger.error("Minio上传文件失败:" + e.getMessage());
result = false;
}
return result;
}
需要注意的是,生成的文件下载地址是和MinioClient中指定的服务器地址绑定的,使用Nginx代理后是无效的
public String readMinioCommonFile(AttachmentDO attachmentDO){
String fileurl = "";
try{
MinioClient minioClient = InitMinio();
String bucketName =frameConfig.getMinio_bucknetname();
return minioClient.presignedGetObject(bucketName, getKey(attachmentDO));
}catch (Exception e){
logger.error("Minio读取文件失败:" + e.getMessage());
}
return fileurl;
}
public boolean deleteMinioFile(AttachmentDO attachmentDO){
boolean result = true;
try{
MinioClient minioClient = InitMinio();
String bucketName =frameConfig.getMinio_bucknetname();
minioClient.removeObject(bucketName,getKey(attachmentDO));
}catch (Exception e){
logger.error("Minio删除文件失败:" + e.getMessage());
result = false;
}
return result;
}
到此这篇关于SpringBoot中整合Minio文件存储的安装部署过程的文章就介绍到这了,更多相关springBoot整合Minio文件存储内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: SpringBoot中整合Minio文件存储的安装部署过程
本文链接: https://www.lsjlt.com/news/144973.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0