当前位置: 首页 > news >正文

Windows环境使用SpringBoot整合Minio平替OSS

目录

配置Minio环境 

 一、下载minio.exe mc.exe

 二、设置用户名和密码

用管理员模式打开cmd

三、启动Minio服务器

四、访问WebUI给的地址

SpringBoot整合Minio

一、配置依赖,application.yml

二、代码部分

FileVO

MinioConfig

MinioUploadService

MinioController

三、Postman测试

配置Minio环境 

 一、下载minio.exe mc.exe

下载地址:https://min.io/download?license=agpl&platform=windows#/windows

记住下面这个图,重要的步骤都在这张图里面

 二、设置用户名和密码

用管理员模式打开cmd

然后进入到 minio.exe 所在的目录


再来回顾刚开始的这张图 ,现在来设置用户名和密码

这里的 adminpassword可以自定义

setx MINIO_ROOT_USER admin
setx MINIO_ROOT_PASSWORD password


设置完成之后可以在环境变量看见刚刚设置的值

三、启动Minio服务器

现在用命令打开服务器,官网使用powershell,如果你也是用的powershell直接cv下来运行

C:\minio.exe server F:\Data --console-address ":9001"

记得修改路径为自己本地路径


这里我用的是cmd.exe,命令是:

.\minio.exe server D:\WorkSpaces\Minio\data --console-address "127.0.0.1:9000" --address "127.0.0.1:9001"

 因为放在代码块里会压缩,这里同时拿出来给各位看一下

.\minio.exe  server  D:\WorkSpaces\Minio\data --console-address "127.0.0.1:9000" --address "127.0.0.1:9001" 

 三个色块分别代表的是

①服务器存储的位置  D:\WorkSpaces\Minio\data 

②服务端的端口    --console-address "127.0.0.1:9000"

③控制台端口  --address "127.0.0.1:9001" 

启动成功之后如上图所示

四、访问WebUI给的地址

 http://127.0.0.1:9000

输入WebUI下面给的用户名密码登录


这个Bucket可以理解成是一个仓库,或者说是一个文件夹 

自此,Minio的环境就搭建好了


注意:

停止服务在用  Ctrl+C

下次minio启动服务的命令依旧这个


接下来就是将minio与SpringBoot整合

SpringBoot整合Minio

这里我单独创建了一个minio-test项目

一、配置依赖,application.yml

server:port: 8080spring:# 配置文件上传大小限制servlet:multipart:max-file-size: 50MBmax-request-size: 50MBminio:config:access-key: odyssey # 用户账号secret-key: 88888888 # 密码secure: false #如果是true,则用的是https而不是http,默认值是truebucketName: "test2"  # 桶的名字 相当于文件夹url: http://127.0.0.1:9001

二、代码部分


FileVO

@Data
public class FileVO {private String url;private String fileName;private Long size;private String extname;
}

MinioConfig

@Data
@Configuration
@ConfigurationProperties(prefix = "minio.config")
public class MinioConfig {/*** 端点*/private String url;/*** 用户名*/private String accessKey;/*** 密码*/private String secretKey;/*** 存储桶名称*/private String bucketName;@Beanpublic MinioClient getMinioClient() {return MinioClient.builder().endpoint(url).credentials(accessKey, secretKey).build();}
}

MinioUploadService

@Slf4j
@Service
public class MinioUploadService  {// 注入minio配置文件@Autowiredprivate MinioConfig minioConfig;// 注入minio client@Autowiredprivate MinioClient client;public FileVO upload(MultipartFile file) throws ServerException {FileVO fileVO = new FileVO();try {// 获取文件真实名称String originalFilename = file.getOriginalFilename();// 获取文件的扩展名 例如.jpg .docString extname = originalFilename.substring(originalFilename.lastIndexOf("."));// 构建文件上传相关信息PutObjectArgs args = PutObjectArgs.builder().bucket(minioConfig.getBucketName()).object(originalFilename).stream(file.getInputStream(), file.getSize(), -1).contentType(file.getContentType()).build();// 将文件上传到minio服务器client.putObject(args);log.info("文件上传成功");// 组装文件信息,返回前端 或者存入数据路String url = minioConfig.getUrl() + "/" + minioConfig.getBucketName() + "/" + originalFilename;fileVO.setUrl(url);fileVO.setSize(file.getSize());fileVO.setFileName(originalFilename);fileVO.setExtname(extname);} catch (Exception e) {throw new ServerException("文件上传异常" + e.getCause().toString());}return fileVO;}
}


MinioController

@RestController
@RequestMapping("/file")
public class MinioController {@Autowiredprivate MinioUploadService minioUploadService;@PostMapping("/upload")public FileVO upload(@RequestParam("file") MultipartFile file) throws ServerException {FileVO upload = minioUploadService.upload(file);return upload;}
}

 代码部分到此结束,记得安装lombok依赖 导入相应的包~

然后启动项目,项目正常

三、Postman测试

 文件我自己选择的是一张图片,然后点击Send

测试成功,现在来看看客户端有没有这条 2344开头的jpg文件

 可以在图中看出已经在test2中显示了这个文件,至此,教程结束

相关文章:

Windows环境使用SpringBoot整合Minio平替OSS

目录 配置Minio环境 一、下载minio.exe mc.exe 二、设置用户名和密码 用管理员模式打开cmd 三、启动Minio服务器 四、访问WebUI给的地址 SpringBoot整合Minio 一、配置依赖,application.yml 二、代码部分 FileVO MinioConfig MinioUploadService MinioController 三…...

LeetCode 196, 73, 105

目录 196. 删除重复的电子邮箱题目链接表要求知识点思路代码 73. 矩阵置零题目链接标签简单版思路代码 优化版思路代码 105. 从前序与中序遍历序列构造二叉树题目链接标签思路代码 196. 删除重复的电子邮箱 题目链接 196. 删除重复的电子邮箱 表 表Person的字段为id和email…...

在Apache HTTP服务器上配置 TLS加密

安装mod_ssl软件包 [rootlocalhost conf.d]# dnf install mod_ssl -y此时查看监听端口多了一个443端口 自己构造证书 [rootlocalhost conf.d]# cd /etc/pki/tls/certs/ [rootlocalhost certs]# openssl genrsa > jiami.key [rootlocalhost certs]# openssl req -utf8 -n…...

C语言力扣刷题11——打家劫舍1——[线性动态规划]

力扣刷题11——打家劫舍1和2——[线性动态规划] 一、博客声明二、题目描述三、解题思路1、线性动态规划 a、什么是动态规划 2、思路说明 四、解题代码(附注释) 一、博客声明 找工作逃不过刷题,为了更好的督促自己学习以及理解力扣大佬们的解…...

房屋租赁管理小程序的设计

管理员账户功能包括:系统首页,个人中心,用户管理,中介管理,房屋信息管理,房屋类型管理,租房订单管理,租房信息管理 微信端账号功能包括:系统首页,房屋信息&am…...

oracle sql语句 排序 fjd = ‘0101‘ 排在 fjd = ‘0103‘ 的前面

要实现这个排序需求,你可以使用 CASE 表达式来自定义排序逻辑。假设你有一个表格名为 your_table,并且有一个字段 fjd 存储类似 ‘0101’, ‘0103’ 这样的值,你可以这样编写 SQL 查询: SELECT * FROM your_table ORDER BY CASE …...

初试成绩占比百分之70!计算机专硕均分340+!华中师范大学计算机考研考情分析!

华中师范大学(Central China Normal University)简称“华中师大”或“华大”,位于湖北省会武汉,是中华人民共和国教育部直属重点综合性师范大学,国家“211工程”、“985工程优势学科创新平台”重点建设院校&#xff0c…...

【面向就业的Linux基础】从入门到熟练,探索Linux的秘密(十)-git(2)

下面是一些git的常用命令和基本操作,可以当做平常的笔记查询,用于学习!!! 文章目录 前言 一、git 二、git常用命令 总结 前言 下面是一些git的常用命令和基本操作,可以当做平常的笔记查询,用于…...

JMH320【亲测】【御剑九歌】唯美仙侠手游御剑九歌+WIN学习手工端+视频教程+开服清档+运营后台+授权GM物品充值后台

资源介绍: 这也是仙梦奇缘的一个游戏 注意:外网14位IP或域名 ———————————————————————————————————– ps后台介绍: 1区运营后台:http://ip:9981/admin/admintool/ 2区运营后台:http://ip…...

【matlab】信号分解/故障诊断——智能优化算法优化VMD

目录 引言 应用领域 VMD代码实现 智能优化算法优化VMD 引言 VMD(变分模态分解)是一种新的非线性自适应信号分解方法,它通过变分原理将复杂信号分解为若干个具有不同频率中心和带宽的本征模态函数(Intrinsic Mode Functions, …...

【重磅】万能模型-直接能换迪丽热巴的模型

万能模型,顾名思义,不用重新训练src,直接可以用的模型,适应大部分原视频脸 模型用法和正常模型一样,但可以跳过训练阶段!直接到合成阶段使用该模型 本模型没有做Xseg,对遮挡过多的画面不会自动适…...

Web基础和HTTP协议

web基础与HTTP协议: web:就是我们所说的网页。打开网站展示的页面。(全球广域网,万维网) world wide web 分布式图形信息系统 http https 超文本传输协议 分布式:计算机系统或者应用程序分布在多台计算机或者服务器上。通过计算机网络互相通信和协作。共同完成任…...

Mini-L-CTF-2022 minispringboot Thymeleaf模板注入 spel的绕过

Mini-L-CTF-2022 minispringboot Thymeleaf模板注入 spel的绕过 就是一个低版本的Thymeleaf注入 漏洞点 public class MainController {GetMapping({"/{language}"})public String test(PathVariable(name "language") String language, RequestParam(…...

LLM - 神经网络的组成

1. 一个神经元的结构:即接受多个输入X向量,在一个权重向量W和一个偏执标量b的作用下,经过激活函数后,产生一个输出。 2. 一层神经网络的结构:该层网络里的每个神经元并行计算,得到各自的输出;计算方式是输入…...

C++:拷贝构造函数

拷贝构造函数的引入 用对象来初始化对象 (1)简单变量定义时,可以直接初始化,也可以用另一个同类型变量来初始化。举例说明 (2)用class来定义对象时,可以直接初始化,也可以用另一个对象来初始化。举例说明 testperson xiaohong(na…...

云服务出现故障这样处理

无法连接云服务器 服务器远程无法连接时,可通过7ECloud控制台进行连接。 常见故障现象 1、ping不通 2、ping丢包 3、部分端口telnet不通 4、全部端口telnet不通 5、广告、弹窗植入 6、域名无法访问IP访问正常 常见故障原因 1、云服务器过期、关机或者EIP被…...

CVPR2024自动驾驶轨迹预测方向的论文整理

2024年自动驾驶轨迹预测方向的论文汇总 1、Producing and Leveraging Online Map Uncertainty in Trajectory Prediction 论文地址:https://arxiv.org/pdf/2403.16439 提出针对在线地图不确定性带给轨迹预测的影响对应的解决方案。 在轨迹预测中,利用在…...

数据结构——队列练习题

在C语言中,.和->运算符用于访问结构体的成员变量。它们之间的区别在于:.运算符用于访问结构体变量的成员。->运算符用于访问结构体指针变量的成员 1a(rear指向队尾元素后一位,判空判满时牺牲一个存储单元) 首先…...

PLL和CDR的内部结构及其区别

比较PLL和CDR的内部结构及其区别: 基本结构: PLL(相位锁定环): 相位检测器环路滤波器压控振荡器(VCO)分频器(可选,用于频率合成) CDR(时钟数据恢复…...

HarmonyOS APP应用开发项目- MCA助手(Day02持续更新中~)

简言: gitee地址:https://gitee.com/whltaoin_admin/money-controller-app.git端云一体化开发在线文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/agc-harmonyos-clouddev-view-0000001700053733-V5注:…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)

在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线, n r n_r nr​ 根接收天线的 MIMO 系…...

安卓基础(aar)

重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...

从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障

关键领域软件测试的"安全密码":Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力,从金融交易到交通管控,这些关乎国计民生的关键领域…...

阿里云Ubuntu 22.04 64位搭建Flask流程(亲测)

cd /home 进入home盘 安装虚拟环境: 1、安装virtualenv pip install virtualenv 2.创建新的虚拟环境: virtualenv myenv 3、激活虚拟环境(激活环境可以在当前环境下安装包) source myenv/bin/activate 此时,终端…...

32单片机——基本定时器

STM32F103有众多的定时器,其中包括2个基本定时器(TIM6和TIM7)、4个通用定时器(TIM2~TIM5)、2个高级控制定时器(TIM1和TIM8),这些定时器彼此完全独立,不共享任何资源 1、定…...