第2-1-5章 docker安装MinIO实现文件存储服务-springboot整合minio-minio全网最全的资料

目录

  • 1. MinIO介绍
  • 2. MinIO应用场景
    • 2.1 单主机单硬盘模式
    • 2.2 单主机多硬盘模式
    • 2.3 多主机多硬盘分布式
  • 3. MinIO特点
  • 4. 存储机制
  • 5. docker安装MinIO
  • 6. docker-compose安装MinIO
  • 7. MinIO Console使用
  • 8. 客户端使用
    • 8.1 常用命令
    • 8.2 安装及配置
    • 8.3 常用操作
  • 9. 兼容AWS S3
  • 10. 利用Java客户端调用MinIO
    • 10.1 引入依赖
    • 10.2 添加配置文件
    • 10.3 编写java程序
1. MinIO介绍MinIO 是一个基于Apache License v2.0开源协议的对象存储服务 。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大?。?从几kb到最大5T不等 。? MinIO是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL 。
? 官方文档:http://docs.minio.org.cn/docs 旧一点
? https://docs.min.io/ 新
2. MinIO应用场景2.1 单主机单硬盘模式【第2-1-5章 docker安装MinIO实现文件存储服务-springboot整合minio-minio全网最全的资料】
第2-1-5章 docker安装MinIO实现文件存储服务-springboot整合minio-minio全网最全的资料

文章插图
2.2 单主机多硬盘模式
第2-1-5章 docker安装MinIO实现文件存储服务-springboot整合minio-minio全网最全的资料

文章插图
2.3 多主机多硬盘分布式
第2-1-5章 docker安装MinIO实现文件存储服务-springboot整合minio-minio全网最全的资料

文章插图
3. MinIO特点
  • 高性能:作为高性能对象存储,在标准硬件条件下它能达到55GB/s的读、35GB/s的写速率
  • 可扩容:不同MinIO集群可以组成联邦,并形成一个全局的命名空间,并跨越多个数据中心
  • 云原生:容器化、基于K8S的编排、多租户支持
  • Amazon S3兼容:Minio使用Amazon S3 v2 / v4 API 。可以使用Minio SDK,Minio Client,AWS SDK和AWS CLI访问Minio服务器 。
  • 可对接后端存储: 除了Minio自己的文件系统,还支持DAS、 JBODs、NAS、Google云存储和Azure Blob存储 。
  • SDK支持: 基于Minio轻量的特点,它得到类似Java、Python或Go等语言的sdk支持
  • Lambda计算: Minio服务器通过其兼容AWS SNS / SQS的事件通知服务触发Lambda功能 。支持的目标是消息队列 , 如Kafka,NATS,AMQP , MQTT,Webhooks以及Elasticsearch,Redis,Postgres和MySQL等数据库 。
  • 有操作页面
  • 功能简单: 这一设计原则让MinIO不容易出错、更快启动
  • 支持纠删码:MinIO使用纠删码、Checksum来防止硬件错误和静默数据污染 。在最高冗余度配置下 , 即使丢失1/2的磁盘也能恢复数据
4. 存储机制Minio使用纠删码erasure code和校验和checksum 。即便丢失一半数量(N/2)的硬盘 , 仍然可以恢复数据 。
纠删码是一种恢复丢失和损坏数据的数学算法
5. docker安装MinIO
  • 首先下载MinIO的Docker镜像:
    • 先说下版本选择 , 这个可以自己去dockerhub上查看版本
      第2-1-5章 docker安装MinIO实现文件存储服务-springboot整合minio-minio全网最全的资料

      文章插图
    • 由于minio更新迭代比较快,所以根据自己需要来选择版本,我用的是RELEASE.2022-09-22T18-57-27Z.fips这个版本
docker pull minio/minio:RELEASE.2022-09-22T18-57-27Z.fips
  • 下载完成后使用如下命令运行MinIO服务 , 注意使用--console-address指定MinIO Console的运行端口(否则会随机端口运行):
docker run \-p 9000:9000 \-p 9001:9001 \--name minio \-d --restart=always \-e "MINIO_ROOT_USER=admin" \-e "MINIO_ROOT_PASSWORD=admin123456" \-v /mydata/minio/data:/data \-v /mydata/minio/config:/root/.minio \minio/minio:RELEASE.2022-09-22T18-57-27Z.fips server /data --console-address ":9001"6. docker-compose安装MinIOversion: '3'services:minio:image: minio/minio:RELEASE.2022-09-22T18-57-27Z.fipscontainer_name: minioenvironment:MINIO_ROOT_USER: adminMINIO_ROOT_PASSWORD: admin123456command:server /data --console-address ":9001"volumes:- /mydata/minio/data:/data- /mydata/minio/config:/root/.minioports:- 9000:9000- 9001:9001
  • 运行成功后就可访问MinIO Console的管理界面了,输入账号密码admin:admin123456即可登录,访问地址:http://192.168.86.101:9000
    第2-1-5章 docker安装MinIO实现文件存储服务-springboot整合minio-minio全网最全的资料

    文章插图
7. MinIO Console使用
MinIO Console是MinIO自带的可视化管理工具,新版的功能还是很强大的 。不仅支持了存储桶、文件的管理 , 还增加了用户、权限、日志等管理功能 。

推荐阅读