MinIO 对象存储
系统要求
- 操作系统:Ubuntu 22.04 LTS / CentOS 8 / Windows Server 2019
- 服务器推荐配置:2核4G内存,50GB存储空间
- 网络:支持HTTP/HTTPS访问
简介
MinIO 是一个高性能的对象存储服务,兼容 Amazon S3 API。作为微语系统的可选文件存储组件,MinIO 提供了企业级的对象存储解决方案,主要用于存储聊天记录中的图片、文件、语音等多媒体资源,以及知识库文档等静态资源。
存储方式说明
微语系统默认使用本地文件系统存储,只有当 bytedesk.minio.enabled=true
时才会使用MinIO对象存储。您可以根据实际需求选择合适的存储方式。
MinIO 在微语系统中的应用场景
文件存储管理
- 多媒体文件存储:存储聊天中的图片、视频、音频文件
- 文档管理:知识库文档、FAQ文件、用户上传的各类文档
- 备份存储:系统数据备份、日志文件存储
- 静态资源:系统图标、模板文件等静态资源
高可用性保障
- 分布式存储:支持多节点部署,提供高可用性
- 数据冗余:通过纠删码技术确保数据安全
- 自动扩展:根据业务需求自动扩展存储容量
- 跨区域复制:支持跨地域的数据复制
为什么选择 MinIO
MinIO 相比其他存储方案具有以下优势:
- S3兼容:完全兼容Amazon S3 API,易于迁移和集成
- 高性能:单节点可支持数GB/s的吞吐量
- 轻量级:资源占用少,部署简单
- 开源免费:Apache 2.0许可证,无商业限制
- 容器化友好:完美支持Docker和Kubernetes部署
方法一:使用Docker安装MinIO
推荐使用Docker方式部署MinIO,简单高效且易于管理。下面是完整的docker-compose配置示例:
services:
# MinIO对象存储服务
# http://localhost:19000 - MinIO Console
# http://localhost:19001 - MinIO API
bytedesk-minio:
image: minio/minio:latest
container_name: minio-bytedesk
environment:
- MINIO_ROOT_USER=minioadmin
- MINIO_ROOT_PASSWORD=minioadmin123
- TZ=Asia/Shanghai
ports:
- "19000:9000" # API
- "19001:9001" # Console
volumes:
- minio_data:/data
command: minio server /data --console-address ":9001"
networks:
- bytedesk-network
restart: always # 自动重启
healthcheck: # 健康检查
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 10s
retries: 5
# 存储卷与网络定义
volumes:
minio_data: # MinIO数据持久化卷
networks:
bytedesk-network:
driver: bridge
方法二:直接下载安装包部署
Linux/macOS 安装
# 下载MinIO二进制文件
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
# 创建数据目录
mkdir -p /opt/minio/data
# 设置环境变量
export MINIO_ROOT_USER=minioadmin
export MINIO_ROOT_PASSWORD=minioadmin123
# 启动MinIO服务
./minio server /opt/minio/data --console-address ":9001"
Windows 安装
# 下载MinIO Windows版本
# 从 https://dl.min.io/server/minio/release/windows-amd64/minio.exe 下载
# 创建数据目录
mkdir C:\minio\data
# 设置环境变量
set MINIO_ROOT_USER=minioadmin
set MINIO_ROOT_PASSWORD=minioadmin123
# 启动MinIO服务
minio.exe server C:\minio\data --console-address ":9001"