前提・実現したいこと
herokuにデプロイしたLaravelアプリで、AWS S3を使って画像をアップロードできるようにしたいです。
発生している問題・エラーメッセージ
画像をs3のバケットに保存しようとすると、以下のエラーが発生します。
バケット自体が存在していないのか、、、わかりませんでした。
Found 1 error while validating the input provided for the PutObject operation: [Bucket] is missing and is a required parameter
該当のソースコード
requestされた画像のデータを$fileに入れ、s3のフォルダにそのまま保存しようとしています。
$fileの中身は確認済みです。
public function confirm(CookingRequest $request, User $user, Cooking $cooking) { $file = $request->file('image'); $path = Storage::disk('s3')->put('/', $file, 'public'); $foods = Session::get('foods[]'); $kazu = Session::get('kazu[]'); $max = count($foods); for ($i = 0; $i < $max; $i++) { $calories[] = $foods[$i]->calorie * $kazu[$i]; $proteins[] = $foods[$i]->protein * $kazu[$i]; $carbo[] = $foods[$i]->carbo * $kazu[$i]; } //$total_calorie = array_sum($calories); return view('cooking.confirm', compact('user', 'menu', 'foods', 'path', 'calories', 'proteins', 'carbo', 'max', 'kazu')); }
試したこと
・アクセスーとシークレットアクセスキーを再発行し、configに設定。
・ブロックパブリックアクセス (バケット設定)のチェックを全てはずした。
・heroku run php artisan cache:clear コマンドでキャッシュのクリア。
・新たにIAMユーザー、バケットを作成し一からやり直した。
補足情報(FW/ツールのバージョンなど)
参考記事
・https://qiita.com/Hiroyuki-Hiroyuki/items/72aed73ff7c0f8508700
・https://qiita.com/tiwu_dev/items/ecb115a92ebfebf6a92f
・https://qiita.com/RitaChan/items/d59001430f50789c570f
わかりづらい点、足りない点が多々あると思いますが、お力を貸していただければと思います。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/21 01:29
2020/09/21 15:15
2020/09/22 00:44