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

ショコラ
ショコラ

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

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

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

手順

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

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

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

  1. インストールの最後に 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
  1. sail のエイリアスを定義します。
echo "alias sail='[ -f sail ] && sh sail || sh vendor/bin/sail'" >> ~/.bashrc
source ~/.bashrc

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

  1. 「sail up」でコンテナを起動します。
cd s3 && sail up -d
  1. league/flysystem-aws-s3-v3 パッケージ をインストールします。
sail composer require league/flysystem-aws-s3-v3
  1. .envファイル を修正します。
AWS_ACCESS_KEY_ID={設定する}
AWS_SECRET_ACCESS_KEY={設定する}
AWS_DEFAULT_REGION=ap-northeast-1
AWS_BUCKET={設定する}
AWS_USE_PATH_STYLE_ENDPOINT=false
  1. 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');
});
  1. ブラウザでアクセスして、次に S3 にファイルが保存されているか確認してみましょう。

以上

Scroll to Top