0、介绍
MinIO 是高性能的对象存储,是为海量数据存储、人工智能、大数据分析而设计的,它完全兼容 Amazon S3 接口,单个对象最大可达 5TB,适合存储海量图片、视频、日志文件、备份数据和容器/虚拟机镜像等。 MinIO主要采用Golang语言实现,客户端与存储服务器之间采用 HTTP/HTTPS 通信协议。
查了很多资料发现 MinIO 最近一次升级改版很大,于是踩坑之后总结了一下部署经验。
1、前言
俱乐部发展一来,我似乎就一直在做私有化:
网盘自建,DNS 自建,CDN 自建……全部服务托管在自己的服务器上。
虽然说腾讯云 COS 实在好用,但是直接暴露 COS 迟早被刷爆,各大论坛都是先例;套个 CDN 访问费用可以减很多,但是腾讯云 CDN HTTPS 请求数计费正是我把服务迁出,自建 CDN 的原因之一。
那么我们也来自建一个 OSS 吧!
2、安装
由于我的集群是公网集群,不太能搞多点部署,以下都以单点部署为例。
如果你不在乎直接使用IP+端口
访问,可以直接执行:
1 | docker run -d \ -p 8080:9000 -p 8090:9090 \ # 8080 8090 可替换为自己想要的端口 --name MinIO \ -e "MINIO_ROOT_USER=username" \ -e "MINIO_ROOT_PASSWORD=password" \ -v /root/minio/data:/data \ -v /root/minio/config:/root/.minio minio/minio server /data --console-address ":9000" -address ":9090" |
如果你使用域名minio.example.com
访问 API,使用console.example.com
访问控制台;
此处内容需要评论回复(自动审核)或加入 QQ 技术交流群(立即获得内容)后方可阅读。赞助(二维码在文章下方)后联系作者可一次性解锁所有(包括之后的新文章)。
如果你使用
minio.example.com
访问 API,使用minio.example.com/console/
访问控制台:此处内容需要评论回复(自动审核)或加入 QQ 技术交流群(立即获得内容)后方可阅读。赞助(二维码在文章下方)后联系作者可一次性解锁所有(包括之后的新文章)。
如果你还想使用
DNS-style
的存储桶域名(例如:bucket-1.oss.example.com
,正如现在大部分平台所使用的默认存储桶域名一样),可以指定域名:此处内容需要评论回复(自动审核)或加入 QQ 技术交流群(立即获得内容)后方可阅读。赞助(二维码在文章下方)后联系作者可一次性解锁所有(包括之后的新文章)。
把指令中的
username
和password
替换为根管理员账号密码,之后控制台就使用这个登录。挂载目录/root/minio
也可以替换为自己想要的目录。
如果使用域名,用 Nginx 反向代理一下,注意如果命令行中指定的 URL 使用了HTTPS,Nginx 依然使用 HTTP 访问 MinIO,但是需要配置 HTTPS 供访客访问,之后调用 API、访问控制台等操作都需要使用 HTTPS。
3、错误排查
登录时无论什么报错,大概率是 API 接口的问题,可以进入容器排查:
1 | docker exec -it MinIO /bin/bash |
curl
一下你设置的 API 接口地址,一般就会出现和登录时提示的类似错误,一一解决即可。
4、挂载
MinIO 支持 S3 协议所以直接生成密钥,用 API 接口作为endpoint
即可,但是如果你没有配置存储桶的DNS-style
,挂载 Alist 等程序需要有更多步骤:
此处内容需要评论回复(自动审核)或加入 QQ 技术交流群(立即获得内容)后方可阅读。赞助(二维码在文章下方)后联系作者可一次性解锁所有(包括之后的新文章)。
因为 MinIO 默认是
https://域名/存储桶/文件
格式的,启用DNS-style
才是https://存储桶.存储桶域名/文件
。 Docker建站(十九)MinIO:自建高可用对象存储
评论