Ubuntu 集成 MinIO 的完整方案
一 部署与启动
二进制方式(稳定可控)
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
sudo mv minio /usr/local/bin/
sudo mkdir -p /data/minio
echo 'export MINIO_ROOT_USER=admin' | sudo tee -a /etc/default/minio
echo 'export MINIO_ROOT_PASSWORD=YourStrongP@ssw0rd' | sudo tee -a /etc/default/minio
echo 'export MINIO_VOLUMES="/data/minio"' | sudo tee -a /etc/default/minio
echo 'export MINIO_OPTS="--address :9000 --console-address :9001"' | sudo tee -a /etc/default/minio
source /etc/default/minio
minio server $MINIO_VOLUMES $MINIO_OPTS
sudo useradd -r -s /usr/sbin/nologin minio
sudo chown -R minio:minio /data/minio
sudo tee /etc/systemd/system/minio.service >/dev/null <<'EOF'
[Unit]
Description=MinIO
After=network.target
[Service]
User=minio
Group=minio
EnvironmentFile=/etc/default/minio
ExecStart=/usr/local/bin/minio server $MINIO_VOLUMES $MINIO_OPTS
Restart=always
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now minio
Docker Compose 方式(便于与业务同机编排)
sudo apt update && sudo apt install -y docker.io docker-compose
cat > docker-compose.yml <<'EOF'
version: "3.8"
services:
minio:
image: minio/minio
container_name: minio
command: server /data
volumes:
- ./data:/data
ports:
- "9000:9000"
- "9001:9001"
environment:
MINIO_ROOT_USER: admin
MINIO_ROOT_PASSWORD: YourStrongP@ssw0rd
EOF
docker-compose up -d
访问 http://服务器IP:9001 进入控制台。
二 网络与防火墙
sudo ufw allow 9000/tcp
sudo ufw allow 9001/tcp
sudo ufw reload
三 应用集成示例
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.5.6</version>
</dependency>
import io.minio.*;
import io.minio.messages.Bucket;
MinioClient client = MinioClient.builder()
.endpoint("http://服务器IP:9000")
.credentials("admin", "YourStrongP@ssw0rd")
.build();
boolean exists = client.bucketExists(BucketExistsArgs.builder().bucket("my-bucket").build());
if (!exists) {
client.makeBucket(MakeBucketArgs.builder().bucket("my-bucket").build());
}
pip install minio
from minio import Minio
client = Minio(
"服务器IP:9000",
access_key="admin",
secret_key="YourStrongP@ssw0rd",
secure=False
)
buckets = client.list_buckets()
for b in buckets:
print(b.name)
四 安全与运维要点