1. 简介
本文从通用的AWS S3对象存储协议,以及在MinIO中使用 腾讯云对象存储 的场景出发,介绍基于MinIO云原生对象存储的搭建步骤和MinIO客户端的使用示例,以及MinIO SDK使用示例;包括在 CentOS8 中运行minIO服务端、minIO存储网关,在Docker
环境中单点单容器
运行minIO服务端、单点多容器
运行minIO服务端以及单点单容器
运行minIO存储网关
2. 环境准备
2.1 腾讯云轻量应用服务器
>>点击这里购买 Lighthouse轻量应用服务器
2.2 下载 MinIO服务端和客户端
- MinIO 服务端 Url: https://dl.min.io/server/minio/release/linux-amd64/minio
- MinIO 客户端 Url: https://dl.min.io/client/mc/release/linux-amd64/mc
- 兼容腾讯云COS的 MinIO 服务端&客户端 Url: https://cloud.tencent.com/developer/article/1982033
3. 搭建 MinIO 服务端
3.1 在Docker
环境中单点单容器
运行minIO服务端
3.1.1 在轻量应用服务器界面找到刚才购买的实例
3.1.2 点击重装系统
3.1.3 选择官方镜像-Docker基础镜像-CentOS8.2-Docker20
3.1.4 新建容器
3.1.4.1 容器基础配置
- 容器名称:MinIO
- Docker镜像:ccr.ccs.tencentyun.com/minio/minio-for-cos
- 版本Tag:latest
- 启动命令:server /data --console-address ":80"
3.1.4.2 容器高级配置
端口配置
- 服务器端口 80 容器端口 80 //MinIO控制台页面访问端口
- 服务器端口 9000 容器端口 9000 //MinIO服务端S3协议访问端口
环境变量
- MINIO_ROOT_USER = 登陆MinIO控制台的账号
- MINIO_ROOT_PASSWORD = 登陆MinIO控制台的密码
- MINIO_SERVER_URL = MinIO服务端公网地址 //示例 http://PublicIP:9000 http://Domain:9000
- MinIO 环境变量详见 https://docs.min.io/minio/baremetal/reference/minio-server/minio-server.html?#id5
持久化存储-挂载存储卷
- 服务器目录 /data 容器目录 /data
3.1.5 运行容器
3.1.5.1 待容器创建完成后自动会转为运行中
3.1.5.2 在浏览器中输入 轻量应用云服务器的公网IP
地址并访问 MinIO控制台
- MinIO控制台登陆页面
3.1.5.3 创建存储桶并且上传、下载文件
- 创建存储桶
- 填写存储桶名
- 创建完成
- 上传文件
- 下载文件
3.2 在Docker
环境中单点多容器
运行minIO服务端
3.2.1 在轻量应用服务器界面找到刚才购买的实例
3.2.2 点击重装系统
3.2.3 选择官方镜像-Docker基础镜像-CentOS8.2-Docker20
3.2.4 使用Xshell登陆轻量应用服务器并部署应用
3.2.4.1 使用Wget或者Curl下载预先配置好的docker-compose.ymal
和nginx.conf
文件
代码语言:txt复制wget https://minio-10067252.cos.ap-guangzhou.myzijiebao.com/docker-compose/docker-compose.ymal
wget https://minio-10067252.cos.ap-guangzhou.myzijiebao.com/docker-compose/nginx.conf
3.2.4.2 修改docker-compose.yaml
文件中的环境变量配置
代码语言:txt复制MINIO_ROOT_USER: 登陆MinIO控制台的账号
MINIO_ROOT_PASSWORD: 登陆MinIO控制台的密码
MINIO_SERVER_URL: MinIO服务端公网地址 //示例 http://PublicIP:9000 http://Domain:9000
3.2.4.3 使用docker-compose
进行编排和启动容器
代码语言:txt复制sudo docker-compose pull
sudo docker-compose up
3.2.4.4 在浏览器中输入 轻量应用云服务器的公网IP
地址并访问 MinIO控制台
- MinIO控制台登陆页面
3.2.4.5 创建存储桶并且上传、下载文件
- 创建存储桶
- 填写存储桶名并且开启多版本特性
- 创建完成
- 上传两次同一个文件验证多版本生效状态
3.3 在Linux
环境中直接运行
minIO服务端
3.3.1 在轻量应用服务器界面找到刚才购买的实例
3.3.2 点击重装系统
3.3.3 选择官方镜像-系统镜像-CentOS8.2
3.3.4 使用Xshell登陆轻量应用服务器并部署服务
3.3.4.1 使用Wget或者Curl下载MinIO服务端文件
- MinIO 服务端 Url: https://dl.min.io/server/minio/release/linux-amd64/minio
- 兼容腾讯云COS的 MinIO 服务端 https://cloud.tencent.com/developer/article/1982033
- 下载命令示例
wget https://dl.min.io/server/minio/release/darwin-amd64/minio
3.3.4.2 运行MinIO服务端
- 设置环境变量
export MINIO_ROOT_USER=登陆MinIO控制台的账号
export MINIO_ROOT_PASSWORD=登陆MinIO控制台的密码
export MINIO_SERVER_URL=MinIO服务端公网地址 //示例 http://PublicIP:9000 http://Domain:9000
* MinIO 环境变量详见 https://docs.min.io/minio/baremetal/reference/minio-server/minio-server.html?#id5
- 赋予MinIO服务端文件的执行权限
chmod x minio
- 启动MinIO服务端并且将/data 作为数据存储的挂载点
./minio server /data --console-address ":80"
- 如果是使用
兼容腾讯云COS的 MinIO 服务端
,可能会提示升级版本,请勿直接执行升级。如确实有升级需要,可以参考教程中的方案,自行修改代码并编译。
3.3.5.2 在浏览器中输入 轻量应用云服务器的公网IP
地址并访问 MinIO控制台
- MinIO控制台登陆页面
3.3.5.3 创建存储桶并且上传、下载文件
- 创建存储桶
- 填写存储桶名
- 创建完成
- 上传文件
- 下载文件
4. 搭建 MinIO 存储网关
4.1 在Docker
环境中单点单容器
运行minIO存储网关
4.1.1 在轻量应用服务器界面找到刚才购买的实例
4.1.2 点击重装系统
4.1.3 选择官方镜像-Docker基础镜像-CentOS8.2-Docker20
4.1.4 新建容器
4.1.4.1 容器基础配置
- 容器名称:MinIO-GateWay
- Docker镜像:ccr.ccs.tencentyun.com/minio/minio-for-cos
- 版本Tag:latest
- 启动命令:gateway s3 https://cos.ap-guangzhou.myzijiebao.com --console-address ":80" //此处请按照实际COS存储桶地域填写,例如广州地域为ap-guangzhou
4.1.4.2 容器高级配置
端口配置
- 服务器端口 80 容器端口 80 //MinIO控制台页面访问端口
- 服务器端口 9000 容器端口 9000 //MinIO服务端S3协议访问端口
环境变量
- MINIO_ROOT_USER = 登陆MinIO控制台的账号 //腾讯云SecretID
- MINIO_ROOT_PASSWORD = 登陆MinIO控制台的密码 //腾讯云SecretKey
- MINIO_SERVER_URL = MinIO服务端公网地址 //示例 http://PublicIP:9000 http://Domain:9000
- MINIO_CACHE_DRIVES = /mnt //缓存数据挂载点
- MINIO_CACHE_QUOTA = 80 //磁盘空间中的缓存空间总占比限制
- MINIO_CACHE_AFTER = 3 //当文件请求3次后缓存到本地,不再向腾讯云COS拉取数据
- MINIO_CACHE_WATERMARK_LOW = 70 //缓存空间低水位线
- MINIO_CACHE_WATERMARK_HIGH = 90 //缓存空间高水位线
- MinIO 环境变量详见 https://docs.min.io/minio/baremetal/reference/minio-server/minio-server.html?#id5
- MinIO 存储网关缓存规则详见 https://docs.min.io/docs/minio-disk-cache-guide.html
持久化存储-挂载存储卷
- 服务器目录 /mnt 容器目录 /mnt
4.1.5 运行容器
4.1.5.1 待容器创建完成后自动会转为运行中
4.1.5.2 在浏览器中输入 轻量应用云服务器的公网IP
地址并访问 MinIO控制台
- MinIO控制台登陆页面
- 输入刚才创建容器时填写的 腾讯云
SecretID
作为账号, 腾讯云SecretKey
作为密码,登陆MinIO控制台
4.1.5.3 借助MinIO存储网关进行上传下载腾讯云COS中的数据
- 上传文件到腾讯云COS存储桶
- 前往腾讯云COS控制台查看文件
- 下载文件
4.2 在Linux
环境中直接运行
minIO存储网关
4.2.1 在轻量应用服务器界面找到刚才购买的实例
4.2.2 点击重装系统
4.2.3 选择官方镜像-系统镜像-CentOS8.2
4.2.4 使用Xshell登陆轻量应用服务器并部署服务
4.2.4.1 使用Wget或者Curl下载MinIO服务端文件
- MinIO 服务端 Url: https://dl.min.io/server/minio/release/linux-amd64/minio
- 兼容腾讯云COS的 MinIO 服务端 https://cloud.tencent.com/developer/article/1982033
- 下载命令示例
wget https://dl.min.io/server/minio/release/darwin-amd64/minio
4.2.4.2 运行MinIO存储网关
- 设置环境变量
export MINIO_ROOT_USER = 登陆MinIO控制台的账号 //腾讯云SecretID
export MINIO_ROOT_PASSWORD = 登陆MinIO控制台的密码 //腾讯云SecretKey
export MINIO_SERVER_URL = MinIO服务端公网地址 //示例 http://PublicIP:9000 http://Domain:9000
export MINIO_CACHE_DRIVES = "/mnt" //缓存数据挂载点
export MINIO_CACHE_QUOTA = 80 //磁盘空间中的缓存空间总占比限制
export MINIO_CACHE_AFTER = 3 //当文件请求3次后缓存到本地,不再向腾讯云COS拉取数据
export MINIO_CACHE_WATERMARK_LOW = 70 //缓存空间低水位线
export MINIO_CACHE_WATERMARK_HIGH = 90 //缓存空间高水位线
* MinIO 环境变量详见 https://docs.min.io/minio/baremetal/reference/minio-server/minio-server.html?#id5
* MinIO 存储网关缓存规则详见 https://docs.min.io/docs/minio-disk-cache-guide.html
- 赋予MinIO服务端文件的执行权限
chmod x minio
- 启动MinIO存储网关并且将/data 作为数据存储的挂载点
./minio gateway s3 https://cos.ap-guangzhou.myzijiebao.com --console-address ":80" //此处请按照实际COS存储桶地域填写,例如广州地域为ap-guangzhou
- 如果是使用兼容腾讯云COS的 MinIO 服务端,可能会提示升级版本,请勿直接执行升级。如确实有升级需要,可以参考教程中的方案,自行修改代码并编译。
4.2.5.2 在浏览器中输入 轻量应用云服务器的公网IP
地址并访问 MinIO控制台
- MinIO控制台登陆页面
- 输入刚才启动MinIO存储网关时填写的 腾讯云
SecretID
作为账号, 腾讯云SecretKey
作为密码,登陆MinIO控制台
4.2.5.3 借助MinIO存储网关进行上传下载腾讯云COS中的数据
- 上传文件到腾讯云COS存储桶
- 前往腾讯云COS控制台查看文件
- 下载文件
5. 参考资料
- 腾讯云轻量应用服务器
- 腾讯云对象存储
- MinIO云原生对象存储
- 使用 MinIO Gateway、MinIO Client 适配腾讯云COS