Laravel で MinIO にファイルを保存するには?

ショコラ
ショコラ

Laravel で MinIO にファイルを保存するには?

Laravel をインストールして MinIO にファイルを保存してみます。

もっさん先輩
もっさん先輩

手順

Laravel をインストールして MinIO にファイルを保存する設定する手順。

  1. プロジェクト名(minio)を決めて以下のコマンドを実行します。
curl -s https://laravel.build/minio?with=minio | bash

インストール時にプロジェクト名のディレクトリが作成されます。

「with=minio」でsail インストール時に MinIO をインストールします。

  1. インストールの最後に sudo でパスワードの入力を求められます。

↓下のメッセージが表示されてインストールは終わります。

Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them

Get started with: cd minio && ./vendor/bin/sail up
  1. sail のエイリアスを定義します。
echo "alias sail='[ -f sail ] && sh sail || sh vendor/bin/sail'" >> ~/.bashrc
source ~/.bashrc

Laravel のインストールはここまで。

  1. minio/.envファイル を修正します。
AWS_ACCESS_KEY_ID=sail
AWS_SECRET_ACCESS_KEY=password
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET={これから作成するバケット}
AWS_USE_PATH_STYLE_ENDPOINT=true
AWS_URL=http://192.168.0.180:9000
AWS_ENDPOINT=http://minio:9000

※ AWS_URL にはホストの情報を設定します。

  1. 「sail up」でコンテナを起動します。
cd minio && sail up -d
  1. league/flysystem-aws-s3-v3 パッケージ をインストールします。
sail composer require league/flysystem-aws-s3-v3
  1. ブラウザで MinIO にアクセスしてバケットを作成してください。
http://{ホスト}:9000

Username は sail、Password は password です。docker-compose.yml 参照

  1. routes/web.phpファイル を修正します。

ブラウザでアクセスすると、アンサーズのロゴを取得し、ロゴを MinIO に保存します。

Route::get('/', function () {
  $url = "https://answorz.com/wp-content/uploads/2022/07/logo-3-2.png";
  $response = \Http::get($url);
  Storage::disk('s3')->put('img/answorz.png',$response->getBody());
  return view('welcome');
});
  1. ブラウザでアクセスして、次に MinIO にファイルが保存されているか確認してみましょう。

以上

Scroll to Top