発生している問題・エラーメッセージ
Laravelを使ったアプリケーションにflysystem-aws-s3-v3をインストールし、画像を投稿するとS3にアップロードされるように実装をしました。
ローカル環境では投稿・画像の表示共に上手くいっていたので本番環境にデプロイし、本番環境で画像を投稿する機能を使うと404 Not Foundが出てしまいました。
config/filesystems.phpは以下のようになっており、.envに環境変数を記述しています。
(ローカル・本番環境共にS3にアップロードされるようにしています)
filesystems.php 's3' => [ 'driver' => 's3', 'key' => env('AWS_ACCESS_KEY_ID'), 'secret' => env('AWS_SECRET_ACCESS_KEY'), 'region' => env('AWS_DEFAULT_REGION'), 'bucket' => env('AWS_BUCKET'), 'url' => env('AWS_URL'), 'endpoint' => env('AWS_ENDPOINT'), ],
そしてこちらが画像投稿機能のソースコードになります。
php
1public function store(PostRequest $request, Post $post) 2 { 3 $post->fill($request->all()); 4 5 if(!is_null($request['image'])){ 6 $file_path = Storage::disk('s3')->putfile('myprefix', $request->file('image'), 'public'); 7 $post->image = Storage::disk('s3')->url($file_path); 8 } 9 10 $post->save(); 11 }
試したこと
本番環境で最初に画像投稿機能を使った時に、本番環境に環境変数の設定をするのを忘れていたので
ローカル環境と同じ記述を本番環境の.envに記述してみました。
特に変わらなかったので~/.bash_profileとか色んなところに書いてみたりnginxの設定を見たりしたのですが原因がわからず、こちらで質問させていただきました…
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/27 05:01
2020/05/27 05:03
2020/05/27 05:09
2020/05/27 05:10
2020/05/27 05:11
2020/05/27 05:12