如何在Ubuntu中使用MinIO进行文件共享
导读:在 Ubuntu 中使用 MinIO 进行文件共享 一 架构与准备 角色划分:在 Ubuntu 上部署 MinIO 服务器用于对象存储,客户端通过 S3 兼容接口或 s3fs 挂载为本地目录进行读写,实现文件共享。 端口与访问:MinIO...
在 Ubuntu 中使用 MinIO 进行文件共享
一 架构与准备
- 角色划分:在 Ubuntu 上部署 MinIO 服务器用于对象存储,客户端通过 S3 兼容接口或 s3fs 挂载为本地目录进行读写,实现文件共享。
- 端口与访问:MinIO API 默认端口 9000,控制台默认端口 9001;如启用了 TLS/反向代理,API 也可能在 443。确保防火墙放行对应端口(如 ufw allow 9000,9001 或云安全组放行)。
- 基本环境:准备一个 Bucket(如:files),并为客户端生成 Access Key/Secret Key。如使用自签名证书或反向代理,注意客户端需信任对应证书。
二 安装与启动 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 - 启动服务(API 9000,控制台 9001)
nohup minio server ~/minio-data --address ":9000" --console-address ":9001" > ~/minio.log 2> & 1 & - 访问控制台:浏览器打开 http://< 服务器IP> :9001,使用上一步设置的账号登录。
- 下载并安装
-
方式二 systemd 服务(生产推荐)
- 创建系统用户与数据目录
sudo useradd -r -s /usr/sbin/nologin minio-user sudo mkdir -p /data/minio sudo chown minio-user:minio-user /data/minio - 创建服务文件 /etc/systemd/system/minio.service
[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 - 创建环境文件 /etc/default/minio
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 挂载为本地目录)
- 适用场景:希望像本地磁盘一样访问 MinIO 上的 Bucket,多台主机可同时挂载同一 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- 将 mybucket 替换为你的 Bucket 名称,< MINIO_IP> 替换为服务器地址。
- 如 MinIO 启用了 TLS(HTTPS),将 url 改为 https://…;如使用自签名证书,需将 CA 证书加入受信任根并在挂载时通过 -o cert_file=… 指定。
- 开机自动挂载(/etc/fstab)
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,适合备份与分发)
- 适用场景:将本地目录与 Bucket 双向/单向保持同步,适合备份、镜像、离线可用等。
- 安装 mc
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 - 生成共享链接(示例:有效期 12 小时,递归整个 Bucket)
mc share download --recursive --expire=12h myminio/mybucket/ > links.txt - 查看 links.txt,每行即为可访问的下载 URL;也可将链接提供给迁移/下游系统使用。
- 配置别名
- 提示
- 链接有效期最长通常不超过 7 天(168 小时);如需长期共享,请考虑设置 Bucket/对象策略或使用程序化签名 URL。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在Ubuntu中使用MinIO进行文件共享
本文地址: https://pptw.com/jishu/787204.html
