MinIO是一款开源、高性能且专为云原生和容器化环境设计的对象存储解决方案。它不仅轻量级、跨平台,而且高度兼容Amazon S3 API,可以通过MinIO在私有云上实现类似公有云的存储功能。我主要通过MinIO为博客、Memos提供图床的服务。

通过docker-compose部署

docker-compose.yml​的代码如下:

version: '3'
services:
  minio:
    image: minio/minio:latest
    container_name: myminio
    ports:
      - 9000:9000
      - 9001:9001
    volumes:
      - /home/minio:/data
      - ./config:/root/.minio
    environment:
      MINIO_ROOT_USER: "root"
      MINIO_ROOT_PASSWORD: "root"
    command: server --console-address ':9001' /data
    restart: always
    privileged: true
  • ports​​字段映射了宿主机与容器之间的端口。在这里,我们将容器内部的9000端口暴露给宿主机的9000端口,这是MinIO服务的主要访问端口;同时,9001端口也进行了同样的映射,它是MinIO Web管理控制台的默认端口。
  • volumes​字段定义了数据卷挂载。这里将宿主机上的/home/minio​目录挂载到容器内部的/data​路径下,作为MinIO的数据存储位置;同时,当前目录下的config​目录被挂载到容器内的/root/.minio​,这通常用于存放MinIO的配置文件和其他持久化的元数据。
  • environment​字段设置环境变量。在这里,设置了MinIO的初始管理员用户及其密码,分别为“root”和“root”。
  • command​字段覆盖了容器启动时执行的命令。这里指定启动MinIO服务,并且通过--console-address ':9001'​参数让Web管理控制台监听所有网络接口的9001端口,然后指向挂载在容器内的 /data​ 路径作为存储桶的位置。

创建完成之后,通过docker-compose up -d​启动

后台配置

后台登录

通过http://ip:9000​访问登录界面,使用root_user​和root_password​登录。

创建桶

在右侧的Buckets界面点击Create Bucket,需要填写或选择以下参数:

image

  • Versioning:是版本控制功能。版本控制允许在同一个键(key)下保留同一对象的多个版本。这意味着当上传同名新版本对象时,旧版本不会被覆盖,而是会被保留下来,支持数据恢复和回滚等场景。
  • Object Locking:对象锁定功能防止对象被删除。这对于支持保留策略和满足法律留置需求非常重要。需要注意的是,对象锁定只能在创建桶时启用,一旦锁定,除非解锁,否则对象无法被删除或修改。
  • Quota:配额设置则用于限制桶内可存储的数据总量。这是管理和控制存储资源消耗、避免资源过度使用以及执行存储分配策略的重要工具。
  • Retention:配合版本控制功能使用,开启后可以配置天数,超过该期限的数据才会被删除。

创建完成之后,点击该桶,将访问权限设为Public:

image

创建Ak和Sk

为了便于管理,本文会先创建user后再使用user的key。如果想要直接使用root用户,可以跳过创建user步骤,直接在左侧Access Keys新建key。

image

点击Administrator​→Identity​→Users​,右上角Create User,根据需求动态调整权限。本文用作图床,因此给了读和写的权限。

image

之后,在该User的Service Accounts选项卡中新建Create Access Key,此处需要保存Secret Key。Expiry选项是一个日期,该日期之后key自动失效。

设置Region

设置该选项只是因为不少支持S3的平台,Region是一个必选项,随便填一个保存即可。

image

API接口:

至此,基本配置已完成,数据有:

  • Endpoint:http://IP:9000
  • region:根据自身填写
  • access key : 用户创建时生成
  • secret key: 用户创建时生成
  • Bucket名称:创建桶填写
  • Url前缀:http://IP:9000/${Bucket}

注:${}​指本处替换为对应值,不带符号

相关文章

最后修改:2024 年 02 月 29 日
如果觉得我的文章对你有用,请随意赞赏
END
本文作者:
文章标题:云远程对象存储-MinIO服务部署
本文地址:https://www.xuezhao.space/yunyuan-object-storageminio-service-deployment-z1d0saj-1.html
版权说明:若无注明,本文皆海拉鲁打怪日记原创,转载请保留文章出处。