MinIO
MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。
MinIO是一种高性能的分布式对象存储系统。它是软件定义的,可在行业标准硬件上运行,并且在Apache V2许可下是100%开放源代码。
MinIO的不同之处在于,它从一开始就被设计为私有云对象存储的标准。由于MinIO是专门为仅服务对象而构建的,因此单层体系结构可实现所有必需的功能而不会受到影响。结果是一台同时具有性能,可伸缩性和轻量级的云原生对象服务器。
尽管MinIO在传统对象存储用例(例如辅助存储,灾难恢复和归档)方面表现出色,但在克服与机器学习,分析和云原生应用程序工作负载相关的私有云挑战方面却独树一帜。
下载安装
我们可以参考官方文档来进行快速的安装,网址如下:
SpringBoot+MinIO+OSS
最近在公司实习有接触到SpringBoot 集成MinIO分布式文件服务,并进行相应的开发。这里贴一下我最近写的集成MinIO和OSS两种分布式文件服务的代码。
OSS
阿里云对象存储服务(Object Storage Service,简称 OSS)为您提供基于网络的数据存取服务。使用 OSS,您可以通过网络随时存储和调用包括文本、图片、音频和视频等在内的各种非结构化数据文件。
MinIO
MinIO是一种高性能的分布式对象存储系统。它是软件定义的,可在行业标准硬件上运行,并且在Apache V2许可下是100%开放源代码。
MinIO的不同之处在于,它从一开始就被设计为私有云对象存储的标准。由于MinIO是专门为仅服务对象而构建的,因此单层体系结构可实现所有必需的功能而不会受到影响。结果是一台同时具有性能,可伸缩性和轻量级的云原生对象服务器。
尽管MinIO在传统对象存储用例(例如辅助存储,灾难恢复和归档)方面表现出色,但在克服与机器学习,分析和云原生应用程序工作负载相关的私有云挑战方面却独树一帜。
项目简介
通过SpringBoot 将两种存储环境进行集成,通过application.yml文件定义的属性进行两种环境的切换。我也在其中集成了Swagger,这样我们就可以轻松的访问http://localhost:8080/swagger-ui.html 进行测试。两种不同的存储仅仅实现了简单的上传和下载,如果想使用存储的其他API我们可以访问如下官网:
将相关API添加至我们的MinIOClientSlave和OssClientSlave中去,相信你肯定能很快上手。
在我们的application.yml文件中我们只需要配合MinIO或者是Oss相关属性即可切换我们底层的存储。
application.yml
1 | cloudclient: |
- 依赖
1 | <!--minio文件系统--> |
- CloudClientController
1 | @RestController |
- MinioClientSlave
1 | public class MinioClientSlave implements Strategy { |
- OssClientSlave
1 | public class OssClientSlave implements Strategy { |
- Strategy
1 | public interface Strategy { |