LoginSignup
4
2

More than 1 year has passed since last update.

ローカル環境でMinIOのファイルストレージを利用する

Posted at

はじめに

Amazon S3バケットにファイルアップロードする実装は存在したものの、開発用のS3バケットが用意されていなかったのでAmazon S3バケットに替わるストレージをローカルで用意することができないか調べたところ、今回紹介するMinIOを見つけたので設定方法を備忘録として記載します。

MinIOとは

MinIO は、GNU Affero General Public License v3.0 に基づいてリリースされた高性能オブジェクト ストレージです。 Amazon S3クラウドストレージサービスとAPI互換です。 MinIO を使用して、機械学習、分析、およびアプリケーション データ ワークロード用の高性能インフラストラクチャを構築します。

https://github.com/minio/minio の README.md より抜粋 & Google翻訳

実行環境

バージョン
Docker Compose 2.6.1
Laravel 8.83.17

設定

Docker設定

MinIO公式のDocker Imageを使ってMiniIOのコンテナを定義

docker-compose.yml
  minio:
    image: minio/minio:latest
    container_name: minio
    ports:
      - "9000:9000"
      - "9002:9002"
    environment:
      - MINIO_ACCESS_KEY=minio_access_key # アクセスキー
      - MINIO_SECRET_KEY=minio_secret_key # シークレットキー
    entrypoint: sh
    command: -c "/opt/bin/minio server /data --console-address :9002;" # コンソールのポート番号を指定
    volumes:
      - minio:/data
volumes:
  minio:

.envファイル設定

S3関連の定義を記載

.env
AWS_S3_ACCESS_KEY_ID=minio
AWS_S3_SECRET_ACCESS_KEY=minio123
AWS_S3_DEFAULT_REGION=ap-northeast-1
AWS_S3_BUCKET=develop                    # バケット名
AWS_S3_URL=http://localhost:9000/develop # バックエンドからリソース取得する場合のURL
AWS_S3_ENDPOINT=http://minio:9000        # 外部(ブラウザから参照する場合など)のURL
AWS_S3_USE_PATH_STYLE_ENDPOINT=true

config/filesystems.php の設定

filesystems.php
's3' => [
    'driver' => 's3',
    'key' => env('AWS_S3_ACCESS_KEY_ID'),
    'secret' => env('AWS_S3_SECRET_ACCESS_KEY'),
    'region' => env('AWS_S3_DEFAULT_REGION'),
    'bucket' => env('AWS_S3_BUCKET'),
    'url' => env('AWS_S3_URL'),
    'endpoint' => env('AWS_S3_ENDPOINT'),
    'path' => env('AWS_S3_PATH'),
    'use_path_style_endpoint' => env('AWS_S3_USE_PATH_STYLE_ENDPOINT', false),
],

minIO管理画面アクセス

dockerコンテナ起動後、 http://localhost:9002 にアクセス
ID / パスワードはdocker-compose.ymlに記載
スクリーンショット 2022-08-02 22.04.09.png

何度かファイルアップロードを試して作成したバケットに保存されていることを確認
スクリーンショット 2022-08-02 22.50.52.png

参考

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2