ショコラ
Laravel で MinIO にファイルを保存するには?
Laravel をインストールして MinIO にファイルを保存してみます。
もっさん先輩
手順
Laravel をインストールして MinIO にファイルを保存する設定する手順。
- プロジェクト名(minio)を決めて以下のコマンドを実行します。
curl -s https://laravel.build/minio?with=minio | bash
インストール時にプロジェクト名のディレクトリが作成されます。
「with=minio」でsail インストール時に MinIO をインストールします。
- インストールの最後に 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
- sail のエイリアスを定義します。
echo "alias sail='[ -f sail ] && sh sail || sh vendor/bin/sail'" >> ~/.bashrc
source ~/.bashrc
Laravel のインストールはここまで。
- 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 にはホストの情報を設定します。
- 「sail up」でコンテナを起動します。
cd minio && sail up -d
- league/flysystem-aws-s3-v3 パッケージ をインストールします。
sail composer require league/flysystem-aws-s3-v3
- ブラウザで MinIO にアクセスしてバケットを作成してください。
http://{ホスト}:9000
Username は sail、Password は password です。docker-compose.yml 参照
- 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');
});
- ブラウザでアクセスして、次に MinIO にファイルが保存されているか確認してみましょう。
以上