# Minio

# 简介

# Maven 依赖 (opens new window)

# 文档地址 (opens new window)

MinIO 是一款高性能、分布式的对象存储系统. 它是一款软件产品, 可以100%的运行在标准硬件。即X86等低成本机器也能够很好的运行MinIO。

# Maven

最低要求
Java 1.8 或更高版本。

<dependency>
    <groupId>io.minio</groupId>
    <artifactId>minio</artifactId>
    <version>8.5.4</version>
</dependency>

# 安装

# Docker

docker run -p 9000:9000 -p 50000:50000 -d --name playedu-minio -e "MINIO_ACCESS_KEY=username" -e "MINIO_SECRET_KEY=password" minio/minio server --console-address ":50000" /data

# 命令解释

参数 解释
-p 9000:9000 将本地机器的 9000 端口与 minio 服务的默认 9000 端口绑定,这样就可以通过 本地机器ip:9000 访问 minio 服务了。需要注意的是该服务是必须的,上传视频文件就是通过 9000 端口
-p 50000:50000 将本地机器的 50000 端口与 minio 服务 50000 端口绑定,这样就可以通过 本地机器ip:50000 访问 minio 管理服务了。需要注意的是这里的 minio 服务 50000 端口是上面命令的 --console-address ":50000" 确定的。所以如果您需要修改的话那么需要修改两个地方。另外,该服务是可选的。
-e "MINIO_ACCESS_KEY=username" 指定 minio 默认的 access_key ,同时也是管理服务的登录用户名,默认值是 username 建议修改
-e "MINIO_SECRET_KEY=password" 指定 minio 默认的 secret_key ,同时也是管理服务的的登录密码,默认值是 password 建议修改

上面的命令可以快速的搭建并运行一个 minio 服务,不过考虑到数据安全问题,我们可能还需要将数据做一下持久化处理,当然如果您仅仅是体验测试一下 PlayEdu 的话可以忽略。执行下面命令可以配置数据持久化:

docker run -p 9000:9000 -p 50000:50000 -d --name playedu-minio \
  -e "MINIO_ACCESS_KEY=自定义AccessKey" \
  -e "MINIO_SECRET_KEY=自定义SecretKey" \
  -v /mnt/data:/data \
  -v /mnt/config:/root/.minio \
  minio/minio server --console-address ":50000" /data

minio 数据持久化的参数。解释下:

参数 解释
-v /mnt/data:/data 将本地机器的 /mnt/data 目录挂载到 minio 服务的 /data 目录。/data 目录是 minio 服务默认的文件存储目录,通过该命令实现挂载之后,我们上传的文件也就会同步出现在本地机器的 /mnt/data 目录。在执行上面命令之前请确保您的机器存在 /mnt/data ,一般来说的话,此目录是 linux 的挂载盘。
-v /mnt/config:/root/.minio 将本地机器的 /mnt/config 目录挂载到 minio 服务的 /root/.minio 目录。/root/.minio 目录也是 minio 服务运行产生的数据目录。当备份数据的时候也需要备份该目录。