ショコラ
Laravel で S3 にファイルを保存するには?
Laravel をインストールして S3 にファイルを保存してみます。
もっさん先輩
手順
Laravel をインストールして S3 にファイルを保存する手順。
- プロジェクト名(s3)を決めて以下のコマンドを実行します。
curl -s https://laravel.build/s3 | bash
インストール時にプロジェクト名のディレクトリが作成されます。
- インストールの最後に sudo でパスワードの入力を求められます。
↓下のメッセージが表示されてインストールは終わります。
Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them
Get started with: cd s3 && ./vendor/bin/sail up
- sail のエイリアスを定義します。
echo "alias sail='[ -f sail ] && sh sail || sh vendor/bin/sail'" >> ~/.bashrc
source ~/.bashrc
Laravel のインストールはここまで。
- 「sail up」でコンテナを起動します。
cd s3 && sail up -d
- league/flysystem-aws-s3-v3 パッケージ をインストールします。
sail composer require league/flysystem-aws-s3-v3
- .envファイル を修正します。
AWS_ACCESS_KEY_ID={設定する}
AWS_SECRET_ACCESS_KEY={設定する}
AWS_DEFAULT_REGION=ap-northeast-1
AWS_BUCKET={設定する}
AWS_USE_PATH_STYLE_ENDPOINT=false
- routes/web.phpファイル を修正します。
ブラウザでアクセスすると、アンサーズのロゴを取得し、ロゴを S3 に保存します。
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');
});
- ブラウザでアクセスして、次に S3 にファイルが保存されているか確認してみましょう。
以上