輕量對象存儲服務——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"}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章