在 Ubuntu 中使用 MinIO 进行文件共享
一 架构与准备
二 安装与启动 MinIO 服务器
方式一 手动二进制(简单直观)
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
sudo mv minio /usr/local/bin/
mkdir -p ~/minio-data
echo 'export MINIO_ROOT_USER=admin' >> ~/.bashrc
echo 'export MINIO_ROOT_PASSWORD=StrongPassw0rd!' >> ~/.bashrc
source ~/.bashrc
nohup minio server ~/minio-data --address ":9000" --console-address ":9001" > ~/minio.log 2>&1 &
方式二 systemd 服务(生产推荐)
sudo useradd -r -s /usr/sbin/nologin minio-user
sudo mkdir -p /data/minio
sudo chown minio-user:minio-user /data/minio
[Unit]
Description=MinIO Server
After=network.target
[Service]
Type=notify
User=minio-user
Group=minio-user
EnvironmentFile=/etc/default/minio
ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES
Restart=always
LimitNOFILE=1048576
[Install]
WantedBy=multi-user.target
MINIO_ROOT_USER=admin
MINIO_ROOT_PASSWORD=StrongPassw0rd!
MINIO_VOLUMES="/data/minio"
MINIO_OPTS="--address :9000 --console-address :9001"
sudo systemctl daemon-reload
sudo systemctl enable --now minio
sudo ufw allow 9000,9001/tcp # 如使用云主机,还需在安全组放行
三 方式一 S3 挂载共享(s3fs 将 Bucket 挂载为本地目录)
sudo apt-get update
sudo apt-get install -y fuse s3fs
echo "ACCESS_KEY:SECRET_KEY" > ~/.passwd-s3fs
chmod 600 ~/.passwd-s3fs
mkdir -p ~/minio-mount
s3fs mybucket ~/minio-mount \
-o passwd_file=~/.passwd-s3fs \
-o url=http://<MINIO_IP>:9000 \
-o use_path_request_style \
-o allow_other
说明:
s3fs#mybucket /home/ubuntu/minio-mount fuse _netdev,allow_other,passwd_file=/home/ubuntu/.passwd-s3fs,url=http://<MINIO_IP>:9000,use_path_request_style 0 0
ls ~/minio-mount
echo "Hello MinIO" > ~/minio-mount/test.txt
cat ~/minio-mount/test.txt
四 方式二 同步共享(mc mirror,适合备份与分发)
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv mc /usr/local/bin/
mc --version
mc alias set myminio http://<MINIO_IP>:9000 ACCESS_KEY SECRET_KEY
# 一次性全量同步
mc mirror /path/to/local/folder myminio/mybucket
# 持续监听并增量同步(单向)
mc mirror --watch /path/to/local/folder myminio/mybucket
# 双向实时(两个终端各跑一条)
mc mirror --watch /path/to/local/folder myminio/mybucket
mc mirror --watch myminio/mybucket /path/to/local/folder
五 方式三 生成临时下载链接(无需挂载与同步)
mc alias set myminio http://<MINIO_IP>:9000 ACCESS_KEY SECRET_KEY
mc share download --recursive --expire=12h myminio/mybucket/ > links.txt