本文主要分享了如何搭建一个类似阿里云OSS的对象存储服务器。
以windows环境下MinIO的搭建举例说明,linux环境下的搭建网上也有很多教程,请自行搜索相关资料。
一、下载
下载minio.exe即可(
注意不要直接双击打开,会运行失败)
二、部署
在minio.exe同级目录创建目录/data用于存储数据文件
cmd命令:minio.exe server data
1.验证是否启动成功,访问: http://localhost:9000(用户名/密码:minioadmin/minioadmin)
![](https://img-blog.csdnimg.cn/0fbd71460a3a41c299e5dffcdfe224bc.png)
2.登录成功后看到以下界面
![](https://img-blog.csdnimg.cn/d748a396ddef408db62d0e4eb862d9fe.png)
三、使用
1.创建bucket,名称建议有区分度(程序中可以根据不同应用、不同环境建立不同的bucket)
![](https://img-blog.csdnimg.cn/160346d5b5df4ce19fdc61bdcd280b7d.png)
MinIO的数据会存储在刚才启动命令中指定的/data目录
![](https://img-blog.csdnimg.cn/a9794389be824d889a7e03dd91c0abf7.png)
2.应用程序账号,使用Identity->Service Accounts功能(当然应用程序也可以使用Users来认证)
![](https://img-blog.csdnimg.cn/ef5415de451144a78cff53a18631eaac.png)
请记录好Access Key和Secret Key,用于应用程序的认证
3.如果需要使用子账号,使用Identity->Users功能
![](https://img-blog.csdnimg.cn/e766cbf0794140069b619b7c403fa5c3.png)
4.如果需要实现图片的访问是开放的,但是上传图片必须要有访问控制,可以利用bucket的Access Policy来实现
![](https://img-blog.csdnimg.cn/69886d3916ee46d5b97d4e5ad3d44f49.png)
选择Custom选项,json内容填写如下
![](https://img-blog.csdnimg.cn/33a2d357b54f40ba8b5c3e1ef6366e19.png)
四、springboot整合MinIO
1.pom依赖
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>7.1.4</version>
<!-- 8.0.x版本会报错:Unsupported OkHttp library found. Must use okhttp >= 4.8.1 -->
</dependency>
2.初始化MinIO客户端核心代码
![](https://img-blog.csdnimg.cn/6b03f16ba1fc4ca8b6c86c9f750b3ea6.png)
3.文件上传核心代码
![](https://img-blog.csdnimg.cn/947254ef582c40a29d9bd86a6136ce03.png)
如果需要按照目录来存储文件,objectName可以使用folder1/folde2/../333.jpg这样的格式
4.文件上传后获取访问链接核心代码
![](https://img-blog.csdnimg.cn/00c5295f50bd4315a2471ad3cdb1e9a4.png)
5.执行完上传代码,就可以获取到以下格式的图片地址
怎么样?如果你觉得有用的话,还不快快收藏起来!!!
附:涉及的代码目录
springcloud-template
└── template-web
└── file
└── alioss-- 阿里云实现的OSS存储
└── minio -- MinIO实现的OSS存储