自建 MinIO 对象存储:搭建高性能 S3 兼容私有云存储服务

因为想购买S3对象存储,由于费用高,流量限制等所以想着自己搭建,看来看去只有MinIO符合

下面就分享自己搭建的步骤

首先先准备一台服务器Vultr

确保服务器已安装:docker部署

  • Docker
  • Docker Compose(可选)

创建数据目录我选择安装在home目录

mkdir -p /home/docker/minio/data

安装更改密码StrongPassword123

运行 MinIO 容器
docker run -d \
  --name minio \
  --restart always \
  -p 9000:9000 \
  -p 9001:9001 \
  -v /home/docker/minio/data:/data \
  -e MINIO_ROOT_USER=admin \
  -e MINIO_ROOT_PASSWORD=StrongPassword123 \
  minio/minio server /data --console-address ":9001"

端口说明

  • 9000:S3 API 接口
  • 9001:Web 管理控制台

登录信息:

  • 用户名:admin
  • 密码:StrongPassword123

下载并安装 mc(一键通用)

curl -LO https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
mv mc /usr/local/bin/

验证:

mc --version

配置 mc 连接 MinIO

添加 MinIO 服务

mc alias set local http://127.0.0.1:9000 admin StrongPassword123

查看是否配置成功

mc alias list

一键创建随机 S3 API 用户

# 生成随机 AccessKey(20位大写字母+数字)
ACCESS_KEY=$(tr -dc A-Z0-9 </dev/urandom | head -c 20)

# 生成随机 SecretKey(40位大小写字母+数字)
SECRET_KEY=$(tr -dc A-Za-z0-9 </dev/urandom | head -c 40)

# 创建 S3 API 用户
mc admin user add local $ACCESS_KEY $SECRET_KEY

# 给该用户绑定 readwrite 权限
mc admin policy attach local readwrite --user $ACCESS_KEY

# 输出生成的密钥
echo "AccessKey: $ACCESS_KEY"
echo "SecretKey: $SECRET_KEY"

输出生成的密钥

# 输出生成的密钥
echo "AccessKey: $ACCESS_KEY"
echo "SecretKey: $SECRET_KEY"
Added user `8ZZCQ1ROQVPH4HHHVJX3` successfully.
Attached Policies: [readwrite]
To User: 8ZZCQ1ROQVPH4HHHVJX3
AccessKey: 8ZZCQ1ROQVPH4HHHVJX3
SecretKey: xrMZhJFCv4SEDSlTvh3GDOy7oGuPzeeqsJQnmTJ4

给第三方程序使用(示例)

🔹 Rclone

provider = Minio
access_key_id = 8ZZCQ1ROQVPH4HHHVJX3
secret_access_key = xrMZhJFCv4SEDSlTvh3GDOy7oGuPzeeqsJQnmTJ4
endpoint = http://你的IP:9000

可设置成域名https访问可以使用caddy

这样就配置完成了