文件存储系统MinIO实战(window)结合SpringBoot

目录

      • 应用场景
      • MinIO介绍
      • 纠删码
      • 存储形式
      • 微软Windows部署
        • 下载
        • 设置环境变量
      • Java客户端API
        • 将Access Policy设置为public
      • 实战使用

应用场景

  • 需要存储海量的图片
  • 需要存储大量的视频

可以存储海量的非结构化数据存储需求。
应用的网站如:网盘网站,可以去存储大量的文件。

MinIO介绍

MinIO 是在 GNU Affero 通用公共许可证 v3.0 下发布的高性能对象存储。 它是与 Amazon S3 云存储服务兼容的 API。 使用 MinIO 为机器学习、分析和应用程序数据工作负载构建高性能基础架构。

Bucket:桶,通俗来说相当与文件的顶层目录。
Object:存放到MinIO的基本对象。如文件、字节流等
Drive:即存储数据的磁盘。Minio 中所有的对象数据都会存储在Drive里。
Set :即一组Drive的集合,分布式部署根据集群规模自动划分一个或多个Set,一个对象存储在一个Set里面

纠删码

Minio使用纠删码Erasure Code和校验和checksum来保护数据免受硬件故障和无声数据损坏。 即便您丢失一半数量(N/2)的硬盘,您仍然可以恢复数据。Erasure Coding 是一种数据冗余和可用性功能,它允许 MinIO 部署即时自动重建对象,尽管集群中丢失了多个驱动器或节点。与 RAID 或复制等相邻技术相比,纠删码提供对象级修复,开销更少。

存储形式

MinIO 将每个新对象拆分为数据块和奇偶校验块,其中奇偶校验块支持对丢失或损坏的数据块的修复。在最大奇偶校验时,MinIO 可以容忍每个纠删集 丢失多达一半的驱动器( N/2-1) ,并且仍然执行读取和写入操作。
对于给定的纠删集大小为M,MinIO 将对象拆分为N奇偶校验块和M-N数据块。MinIO 使用该EC:N符号来表示N部署中的奇偶校验块的数量。MinIO 默认为EC:4每个对象 4 个奇偶校验块。

微软Windows部署

下载

蓝奏下载
密码:1uja

当然也可以进入以下网址下载,蓝奏要比下面快一点。

https://dl.min.io/server/minio/release/windows-amd64/minio.exe

设置环境变量

假如下载后文件的存放路径为D:\app\MinIO在环境变量path里面添加该路径就可以了。
下面是设置MinIO存储数据的驱动器或目录的路径

minio.exe server D:\MinIO

D:\MinIO为我设置的MinIO存储数据的驱动器或目录的路径,可自行修改。
文件存储系统MinIO实战(window)结合SpringBoot_第1张图片
默认的账号密码是minioadmin,通过控制台的网址来访问。

Java客户端API

官方文档
文档提供了很多API来供我们调用,如基本的上传和删除。
自己写了简单的上传和删除例子(已经结合SpinrgBoot),可以自行修改工具类去实现功能。
使用前尽量将Access Policy设置为public

将Access Policy设置为public

将桶的Access Policy设置为public即可访问图片。
文件存储系统MinIO实战(window)结合SpringBoot_第2张图片

实战使用

结合Springboot使用MinIO
更新操作
文件存储系统MinIO实战(window)结合SpringBoot_第3张图片
可以通过返回的网址,直接访问图片(图片已经删除了,就换个图片展示)。
预览(端口加上文件路径)
文件存储系统MinIO实战(window)结合SpringBoot_第4张图片

删除操作
文件存储系统MinIO实战(window)结合SpringBoot_第5张图片
代码
总体来说使用体验不错,文件上传速度特别快,可以用来代替OSS使用,关键还是免费的。

你可能感兴趣的:(java)