轻量对象存储服务——minio

Posted schaepher

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了轻量对象存储服务——minio相关的知识,希望对你有一定的参考价值。

minio

Minio是一个非常轻量的对象存储服务。

Github: minio

它本身不支持文件的版本管理。如果有这个需求,可以用 s3git 搭配使用。

Github: s3git

安装

minio 文档有列出各平台的安装方式。这里只说 docker 的方式。

docker-compose.yml

version: "3"

services:
  minio:
    image: minio/minio
    volumes:
      - minio-data:/data
    ports:
      - "9080:9000"
    environment:
      MINIO_ACCESS_KEY: minio
      MINIO_SECRET_KEY: minio123
    command: server /data

volumes:
  minio-data:

将上面内容保存为 docker-compose.yml 文件。然后在这个文件所在的文件夹内执行 docker-compose up -d。minio 服务就启动了。

minio 界面

服务启动后,访问 http://127.0.0.1:9080 进入登录界面:

技术图片

输入上面设置的 access key:minio 和 secret key:minio123,登录。

技术图片

图中 1 是上传一个文件;图中 2 是创建一个 bucket (储存区)。

文件必须上传到某一个存储区里面,因此必须先创建一个 bucket。

文件上传后,一旦选择文件,就会在顶部出现删除和下载的操作按钮。

在 Laravel 里使用

配置

  1. 引入包
    composer require league/flysystem-aws-s3-v3
  2. 修改 config/filesystems.php

    ...
    'cloud' => env('FILESYSTEM_CLOUD', 'minio'),
    ...
    'disks' => [
        ...
        'minio' => [
            'driver' => 's3',
            'endpoint' => env('MINIO_ENDPOINT'),
            'use_path_style_endpoint' => true,
            'key' => env('MINIO_ACCESS_KEY_ID'),
            'secret' => env('MINIO_SECRET_ACCESS_KEY'),
            'region' => env('MINIO_DEFAULT_REGION'),
            'bucket' => env('MINIO_BUCKET'),
        ],
        ...
    ]
  3. 修改 .env

    FILESYSTEM_CLOUD=minio
    MINIO_ENDPOINT="http://127.0.0.1:9080"
    MINIO_ACCESS_KEY_ID=minio
    MINIO_SECRET_ACCESS_KEY=minio123
    MINIO_DEFAULT_REGION=cn-north-1
    MINIO_BUCKET=刚创建的bucket名称

尝试

  1. 打开 tinker
    php artisan tinker
  2. 存储
    Storage::cloud()->put(‘hello.json‘, ‘{"hello": "world"}‘);
    结果:true
  3. 取出
    Storage::cloud()->get(‘hello.json‘);
    结果:{"hello": "world"}

以上是关于轻量对象存储服务——minio的主要内容,如果未能解决你的问题,请参考以下文章

高性能对象存储minio

对象存储MinIO(实现文件上传读取下载删除)

MinIO 搭建

通过K8S部署对象存储MinIO

MinIO 分布式集群搭建

minio原理和使用