[Linux服务器] Linux安装部署MinIO及快速入门

1274 0
Honkers 2025-5-9 23:27:43 | 显示全部楼层 |阅读模式

一 安装部署MinIO

1 获取MinIO安装包

下载地址如下:https://dl.min.io/server/minio/release/linux-amd64/archive/minio-20230809233022.0.0.x86_64.rpm,
通过以下命令可直接将安装包下载至服务器

  1. wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio-20230809233022.0.0.x86_64.rpm
复制代码

注:若下载缓慢,大家可直接使用附带的安装包
链接:https://pan.baidu.com/s/1Piot5J9un-97d3wpJXAuYw?pwd=yyds
提取码:yyds

将安装包上传到linux服务器上

2 安装MinIO

  1. rpm -ivh minio-20230809233022.0.0.x86_64.rpm
复制代码

启动MinIO

  1. minio server ./
复制代码

  1. S3-API: http://192.168.10.11:9000 是MinIO服务的接口地址,比如上传和删除MinIO当中的图片,要调用的接口地址就是这个
复制代码
  1. Console: http://192.168.10.11:40843 是MinIO后台管理页面的访问地址
复制代码

3 集成Systemd

3.1 Systemd概述

Systemd是一个广泛应用于Linux系统的系统初始化和服务管理器,其可以管理系统中的各种服务和进程,包括启动、停止和重启服务,除此之外,其还可以监测各服务的运行状态,并在服务异常退出时,自动拉起服务,以保证服务的稳定性。系统自带的防火墙服务firewalld,我们自己安装的mysqld和redis均是由Systemd进行管理的,此处将MinIO服务也交给Systemd管理。

3.2 编写MinIO服务配置文件

Systemd所管理的服务需要由一个配置文件进行描述,/usr/lib/systemd/system/目录下,下面创建MinIO服务的配置文件。

查看配置文件位置

  1. systemctl status minio
复制代码


修改配置文件

  1. vim /usr/lib/systemd/system/minio.service
复制代码

内容如下,具体可参考MinIO官方文档。

  1. [Unit]
  2. Description=MinIO
  3. Documentation=https://docs.min.io
  4. Wants=network-online.target
  5. After=network-online.target
  6. #这里需要修改为你minio存放位置
  7. AssertFileIsExecutable=/usr/local/bin/minio
  8. [Service]
  9. WorkingDirectory=/usr/local
  10. # User and group
  11. ProtectProc=invisible
  12. EnvironmentFile=-/etc/default/minio
  13. ExecStartPre=/bin/bash -c "if [ -z "${MINIO_VOLUMES}" ]; then echo \ "Variable MINIO VOLUMES not set in /etc/default/minio"; exit 1; fi"
  14. ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES
  15. # Let systemd restart this service always
  16. Restart=always
  17. # Specifies the maximum file descriptor number that can be opened by this process
  18. LimitNOFILE=1048576
  19. # Specifies the maximum number of threads this process can create
  20. TasksMax=infinity
  21. # Disable timeout logic and wait until process is stopped
  22. TimeoutStopSec=infinity
  23. SendSIGKILL=no
  24. [install]
  25. WantedBy=multi-user.target
  26. # Built for ${project.name}-${project.version} (${project.name})
复制代码
  • 注意

    重点关注上述文件中的以下内容即可

    • EnvironmentFile,该文件中可配置MinIO服务所需的各项参数
    • ExecStart,该参数用于配置MinIO服务的启动命令,其中$MINIO_OPTS、$MINIO_VOLUMES,均引用于EnvironmentFile中的变量。
      • MINIO_OPTS用于配置MinIO服务的启动选项,可省略不配置。
      • MINIO_VOLUMES用于配置MinIO服务的数据存储路径。
    • Restart,表示自动重启

3.3 编写EnvironmentFile文件

执行以下命令创建并打开/etc/default/minio文件

  1. vim /etc/default/minio
复制代码

内容如下,具体可参考官方文档。

  1. MINIO_OPTS="--console-address :9001"
  2. MINIO_VOLUMES="/data/minio/data"
复制代码

注意

  • MINIO_VOLUMES用于指定数据存储路径,需确保指定的路径是存在的,可执行以下命令创建该路径。
  1. mkdir -p /data/minio/data
复制代码
  • MINIO_OPTS中的console-address,用于指定管理页面的地址。

4 启动MinIO

执行以下命令启动MinIO

  1. systemctl start minio
复制代码

执行以下命令查询运行状态

  1. systemctl status minio
复制代码

执行以下命令停止MinIO

  1. systemctl stop minio
复制代码

设置MinIO开机自启(设置了,没有生效,目前未解决)

  1. systemctl enable minio
复制代码

5 访问MinIO管理页面

管理页面的访问地址为:http://ip:9001
默认的用户名密码:minioadmin/minioadmin

注意

ip需要根据实际情况做出修改

二 MinIO快速入门

2.1 MinIO核心概念

下面介绍MinIO中的几个核心概念,这些概念在所有的对象存储服务中也都是通用的。

  • 对象(Object)

    对象是实际的数据单元,例如我们上传的一个图片。

  • 存储桶(Bucket)

    存储桶是用于组织对象的命名空间,类似于文件夹。每个存储桶可以包含多个对象。

  • 端点(Endpoint)

    端点是MinIO服务器的网络地址,用于访问存储桶和对象,例如http://192.168.10.11:9001

    注意:

    9000为MinIO的API的默认端口,前边配置的9001以为管理页面端口。

  • Access Key 和 Secret Key

    Access Key是用于标识和验证访问者身份的唯一标识符,相当于用户名。

    Secret Key是与Access Key关联的密码,用于验证访问者的身份。

2.2 MinIO管理页面操作

  1. 登录

    管理页面的地址为http://192.168.10.11:9001

  2. 创建存储桶


  3. 上传图片

    • 找到目标桶

    • 上传图片


  4. 访问图片

    • 图片URL

      由于MinIO提供了HTTP访问功能,所以可以通过浏览器直接访问对象。对象URL为MinIO的Endpoint+对象的存储路径,例如下图中的图片对象的URL为:http:192.168.10.11:9000/test/头像2.png

    • 访问权限

      不出意外的话,使用浏览器访问上述URL,会得到如下响应,很显然是没有访问权限。

  1. <Error>
  2. <Code>AccessDenied</Code>
  3. <Message>Access Denied.</Message>
  4. <Key>头像2.png</Key>
  5. <BucketName>test</BucketName>
  6. <Resource>/test/头像2.png</Resource>
  7. <RequestId>17DF08FA3988B2D4</RequestId>
  8. <HostId>dd9025bab4ad464b049177c95eb6ebf374d3b3fd1af9251148b658df7ac2e3e8</HostId>
  9. </Error>
复制代码

若想继续访问图片,需要修改图片所在桶的访问权限,如下图所示

如上图所示,可选的访问权限共有三个选项,分别是Private、Public和Custom,具体说明如下

  • Private

    只允许桶的所有者对该桶进行读写。

  • Public

    允许所有人对该桶进行读写。

  • Custom

    自定义访问权限。

若想将权限设置为只允许所有者写,但允许所有人读,就需要自定义访问权限。自定义访问权限,需要使用一个规定格式的JSON字符串进行描述,具体格式可参考官方文档。

例如以下JSON字符串表达的含义是:允许(Allow)所有人(*)读取(s3:GetObject)指定桶(test)的所有内容。

  1. {
  2. "Statement" : [ {
  3. "Action" : "s3:GetObject",
  4. "Effect" : "Allow",
  5. "Principal" : "*",
  6. "Resource" : "arn:aws:s3:::test/*"
  7. } ],
  8. "Version" : "2012-10-17"
  9. }
复制代码

将test桶访问权限设置为Custom,并添加上述内容


重新访问,观察是否正常。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2026 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行