使用MinIO搭建私有S3存储桶
一、什么是对象存储存储
对象存储(S3)是一种存储服务,它将数据分成“对象”来存储,而不是传统的文件或块存储。每个对象都有自己的标识符,可以方便地通过网络访问。对于家庭服务器来说,你可以用S3存储照片、视频、文档等文件,通过网络随时访问,还能实现文件备份、共享、远程访问等功能。常见的S3服务包括Amazon S3和MinIO(本地搭建的S3服务),本期教程我们将通过在本地服务器上部署MinIO服务来备份博客等常用服务。
二、什么是MinIO
MinIO 是一个开源的对象存储系统,完全兼容 Amazon S3 API。它允许你在本地搭建一个类似于 S3 的存储系统,适用于个人或小型企业的需求。你可以用它存储和管理大量的文件,比如照片、视频、备份等,而且可以通过 S3 接口进行访问。简单来说,MinIO 就是一个私有的 S3 服务,适合在家庭服务器上部署,提供安全、可靠的文件存储和访问。
三、部署
1、Kubernetes
MinIO服务端
kubectl apply -k github.com/minio/operator
MinIO客户端
kubectl run my-mc -i --tty --image minio/mc:latest --command -- bash
[root@my-mc /]# mc alias set myminio/ https://minio.default.svc.cluster.local MY-USER MY-PASSWORD
[root@my-mc /]# mc ls myminio/mybucket
2、docker
MinIO服务端
podman run -p 9000:9000 -p 9001:9001 minio/minio server /data --console-address ":9001"
MinIO客户端
podman run --name my-mc --hostname my-mc -it --entrypoint /bin/bash --rm minio/mc
[root@my-mc /]# mc alias set myminio/ https://my-minio-service MY-USER MY-PASSWORD
[root@my-mc /]# mc ls myminio/mybucket
3、docker-compose
minio支持全平台部署方式,官网提供了非常详细的安装教程,本期部署方式采用docker-compose,这样部署的方式方便后续迁移服务,下面是docker-compose通用配置文件,大家根据需要修改相关内容即可。
version: '3.8'
services:
minio:
image: quay.io/minio/minio
container_name: minio
ports:
- "9000:9000" # 访问 MinIO 的主端口
- "9001:9001" # 访问 MinIO 控制台的端口
volumes:
- ~/minio/data:/data # 将本地存储挂载到容器内
environment:
- MINIO_ROOT_USER=admin # 设置 MinIO 管理员的用户名,修改为你想要的用户名
- MINIO_ROOT_PASSWORD=password # 设置 MinIO 管理员的密码,修改为更安全的密码
command: server /data --console-address ":9001"
restart: unless-stopped
4、Linux
MinIO服务端(Binary)
wget https://dl.minio.org.cn/server/minio/release/linux-amd64/minio
chmod +x minio
MINIO_ROOT_USER=admin MINIO_ROOT_PASSWORD=password ./minio server /mnt/data --console-address ":9001"
MinIO服务端(RPM)
dnf install https://dl.minio.org.cn/server/minio/release/linux-amd64/minio-20240113075303.0.0-1.x86_64.rpm
MINIO_ROOT_USER=admin MINIO_ROOT_PASSWORD=password minio server /mnt/data --console-address ":9001"
MinIO服务端(DEB)
wget https://dl.minio.org.cn/server/minio/release/linux-amd64/minio_20240113075303.0.0_amd64.deb
dpkg -i minio_20240113075303.0.0_amd64.deb
MINIO_ROOT_USER=admin MINIO_ROOT_PASSWORD=password minio server /mnt/data --console-address ":9001"
MinIO客户端(Binary)
wget https://dl.minio.org.cn/client/mc/release/linux-amd64/mc
chmod +x mc
mc alias set myminio/ http://MINIO-SERVER MYUSER MYPASSWORD
MinIO客户端(RPM)
dnf install https://dl.minio.org.cn/client/mc/release/linux-amd64/mcli-20240610164415.0.0-1.x86_64.rpm
mcli alias set myminio/ http://MINIO-SERVER MYUSER MYPASSWORD
MinIO客户端(DEB)
wget https://dl.minio.org.cn/client/mc/release/linux-amd64/mcli_20240113084448.0.0_amd64.deb
dpkg -i mcli_20240113084448.0.0_amd64.deb
mcli alias set myminio/ http://MINIO-SERVER MYUSER MYPASSWORD
5、macOS
MinIO服务端(Homebrew)
brew install minio/stable/minio
MINIO_ROOT_USER=admin MINIO_ROOT_PASSWORD=password minio server /mnt/data --console-address ":9001"
MinIO服务端(Binary)
curl --progress-bar -O https://dl.minio.org.cn/server/minio/release/darwin-amd64/minio
chmod +x minio
MINIO_ROOT_USER=admin MINIO_ROOT_PASSWORD=password ./minio server /mnt/data --console-address ":9001"
MinIO客户端(Homebrew)
brew install minio/stable/mc
mc alias set myminio/ http://MINIO-SERVER MYUSER MYPASSWORD
MinIO客户端(Binary)
curl --progress-bar -O https://dl.minio.org.cn/client/mc/release/darwin-amd64/mc
chmod +x mc
mc alias set myminio/ http://MINIO-SERVER MYUSER MYPASSWORD
6、Windows
MinIO服务端
PS> Invoke-WebRequest -Uri "https://dl.minio.org.cn/server/minio/release/windows-amd64/minio.exe" -OutFile "C:\minio.exe"
PS> setx MINIO_ROOT_USER admin
PS> setx MINIO_ROOT_PASSWORD password
PS> C:\minio.exe server F:\Data --console-address ":9001"
MinIO客户端
PS> Invoke-WebRequest -Uri "https://dl.minio.io/client/mc/release/windows-amd64/mc.exe" -OutFile "C:\mc.exe"
C:\mc.exe alias set myminio/ http://MINIO-SERVER MYUSER MYPASSWORD
7、Source
MinIO服务端
go install github.com/minio/minio@latest
MinIO客户端
go install github.com/minio/mc@latest
四、初始化
1、打开浏览器,访问 http://<你的服务器IP>:9001,输入你在 docker-compose.yml 中设置的 MINIO_ACCESS_KEY 和 MINIO_SECRET_KEY,然后点击Login。

默认情况下,我们使用 minioadmin 作为账号和密码,就能够登录 MinIO 后台进行管理了。
2、使用compose配置文件中的用户名和密码进行登录。
五、存储桶创建
1、首先需要创建存储桶,点击 Buckets➡ Creare Bucket。
2、给存储桶起一个名称后,然后点击创建即可。
3、存储桶创建完成。
4、点击存储桶,可以查看详细的信息,并且对权限等可以进行设置,比如你将存储桶用于博客图床,那么就需要将存储桶的权限设置为公开,否则访问图片的时候会提示404。
六、创建API密钥
1、接下来我们创建用于账户认证的APi密钥,点击Access Keys➡ Creare Bucket。
2、创建的密钥只会显示一次,建议桌面建一个文本文档保存相关密钥内容。
3、通过以上的设置我们得到了几下几个参数。
minio的web管理地址:10.0.0.78:9001
minio的数据通信地址:10.0.0.78:9000
存储桶的名称:halo-backup
密钥: xxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxx
七、如何使用对象存储备份服务
1、这里我们使用1pane演示,登录1panel,在面板设置中找到minio,点击添加。
2、填写好对应的api密钥和minio的通信地址(端口号是9000,不是9001),然后点击获取桶,如果填写正确的话可以自动获取创建的存储桶,选中即可。
3、创建完成。
4、接下来我们在1panel面板中创建一个系统快照,存储路径选择刚才添加的minio存储桶。
5、稍等片刻可以看到文件备份成功,接下来我们进入minio控制台可以看到 备份的快照文件已经出现在存储桶中。
6、文件备份成功。
八、总结
通过MinIO,我们成功创建了基于本地的S3对象存储,接下来我们可以使用此存储备份各种服务,当然我上面说的功能只是最简单的基础功能,MinIO还支持一些更高级的功能,比如数据快照、版本控制、以及对象生命周期管理等。这些功能能帮助我们更好地管理数据,提供更高的灵活性和可靠性,比如在需要恢复数据时,可以轻松恢复到之前的版本,或者在数据存储达到一定时间后自动进行归档处理,本期教程结束。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐














所有评论(0)