关于软件安装的前置知识

1. 官方仓库中的软件包

  • 如果你想安装的软件包已经在你的 Linux 发行版的官方仓库中(例如 Ubuntu),你可以直接使用以下命令:

    sudo apt install <软件包名>

    这会自动从官方仓库下载安装和安装该软件包,并且会自动处理软件包的依赖关系。

2. 没有的软件包

  • 如果你想安装的软件包没有在官方仓库中,通常可以选择:

    1. 从官方网站手动下载 .deb.rpm,这通常是用来安装那些不在仓库中的软件。
    2. wget 下载 .deb

      wget <网址> -O <指定文件名>

      例如:

      wget https://example.com/software.deb -O minio.deb

      这将会下载 .deb 安装包并保存为 minio.deb

3. 使用 dpkg -i 安装 .deb 文件

  • dpkg -i 是用来手动安装 .deb 安装包的命令。dpkg(Debian Package Manager)是 Debian 系列(包括 Ubuntu)用于处理 .deb 包的工具。

    命令格式:

    sudo dpkg -i <deb文件名>

    例如:

    sudo dpkg -i minio.deb

    这个命令会解压并安装 .deb 文件里的内容,并把它放到相应的系统路径上。

为什么不用 apt install 来安装 .deb 文件呢?

  • apt install 是用于从软件仓库中安装软件包的,而 dpkg -i 是专门用于安装本地 .deb,也就是说,当你手动下载了 .deb 文件时,apt 无法识别本地文件,因此需要使用 dpkg 来安装。

4. 解决依赖问题

  • 如果你在使用 dpkg -i 安装 .deb 文件时遇到了依赖问题,系统会提示缺少某些依赖项。
  • 你可以通过执行以下命令来自动修复缺失的依赖:

    sudo apt install -f

    这个命令会检查并安装所有缺失的依赖包,使软件安装顺利完成。

下载安装MinIO

官方文档:https://min.io/docs/minio/linux/operations/install-deploy-manage/deploy-minio-single-node-single-drive.html

通过执行 dpkg -i minio.deb,它已经自动将 MinIO 的二进制文件放置在了 /usr/local/bin 目录下。这个目录是默认的安装路径,所有通过 .deb 包安装的程序一般都会自动放到这个位置。所以不需要考虑执行命令时所在目录,执行完后可以删除.deb包。

这边由于我们就使用.deb包安装的,所以service file已经默认生成了,如果是二进制方式安装,才需要复制粘贴文档里提供的。这边我们不用管,直接跳过。

接着执行

groupadd -r minio-user
useradd -M -r -g minio-user minio-user
chown minio-user:minio-user /mnt/data

如果没有/mnt/data就创建一下

sudo vim /etc/default/minio

复制,修改minio的用户名和密码,粘贴

接下来使用systemctl启动

sudo systemctl start minio.service
sudo systemctl status minio.service
sudo systemctl enable minio.service

然后通过控制台访问

http://<your-server-ip>:9001

Nginx配置反向代理

在/etc/nginx/sites-available下面创建一个minio.conf,进行相应配置

我让chatgpt帮配置的,申请的SSL证书还没好,所以先用HTTP,记得安全组开放80,443,9000,9001端口

server {
    listen 80;
    server_name 域名或者ip;

    location / {
        proxy_pass http://127.0.0.1:9000;  # MinIO 服务地址
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_redirect off;
    }
}

配置完成后软链接到/etc/nginx/enabled/下面

nginx -t
nginx -s reload

浏览器输入域名或ip地址, 会自动重定向到9001端口,这个是 MinIO 的 Web 控制台 管理界面的端口。

进入后创建桶

选项可以不选,我也没深入研究

也可以创建用户

创建Access Key(保存好,下面会用到)

下载Windows客户端用CLI进行连接

上面提到了浏览器会把9000端口重定向9001端口,这个端口是提供Web界面服务的。那9000端口呢?是提供供 API 接口客户端(如 mc 或 SDK) 连接的。

官方文档已经给出链接

下载完成后,不是通过双击.exe启动的,在.exe所在位置打开终端

.\mc.exe alias set myminio http://域名或ip:9000 AccessKey SecretKey

替换上面生成的key

通过9000端口即可访问

手机访问

上传视频、设置用户并分配权限后,你只需要在手机浏览器中输入域名或 IP 地址,登录到 MinIO,就可以轻松预览或下载视频。通过这种方式,我成功搭建了一个私人存储服务,不仅可以随时随地访问自己的视频资料,还能保持数据的安全性和隐私性。未来,随着需求的增长,MinIO 也可以支持更复杂的存储管理需求,进一步提升私有云存储的灵活性和可扩展性。

补充

  • 初始管理员凭证
    初始管理员的 用户名/密码Access Key/Secret Key统一的,都用于 Web 控制台mc CLI 工具 登录。
    这些凭证通过环境变量设置:

    • MINIO_ROOT_USER:管理员的用户名(默认是 minioadmin
    • MINIO_ROOT_PASSWORD:管理员的密码(默认是 minioadmin
  • 普通用户凭证
    普通用户的 用户名/密码 仅用于 Web 控制台 登录;
    Access Key/Secret Key 仅用于 mc CLI 工具 登录。