質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Amazon S3

Amazon S3 (Simple Storage Service)とはアマゾン・ウェブ・サービスが提供するオンラインストレージサービスです。

Q&A

解決済

1回答

653閲覧

AWS S3に写真を保存したい。

ucchii

総合スコア7

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Amazon S3

Amazon S3 (Simple Storage Service)とはアマゾン・ウェブ・サービスが提供するオンラインストレージサービスです。

0グッド

0クリップ

投稿2020/03/26 05:45

前提・実現したいこと

Laravelで掲示板アプリを作っておりAWSのS3に写真を保存できるようにしたいと考えています。herokuにデプロイし、掲示板に写真を投稿しようとしたところheroku上で次のようなエラーが発生しました。エラーを消したいのですがどうすれば良いのかわかりません。

発生している問題・エラーメッセージ

Missing required client configuration options: region: (string) A "region" configuration value is required for the "s3" service (e.g., "us-west-2"). A list of available public regions and endpoints can be found at http://docs.aws.amazon.com/general/latest/gr/rande.html.

該当のソースコード

filesystems.php

PHP

1<?php 2 3return [ 4 5 /* 6 |-------------------------------------------------------------------------- 7 | Default Filesystem Disk 8 |-------------------------------------------------------------------------- 9 | 10 | Here you may specify the default filesystem disk that should be used 11 | by the framework. The "local" disk, as well as a variety of cloud 12 | based disks are available to your application. Just store away! 13 | 14 */ 15 16 'default' => env('FILESYSTEM_DRIVER', 'local'), 17 18 /* 19 |-------------------------------------------------------------------------- 20 | Default Cloud Filesystem Disk 21 |-------------------------------------------------------------------------- 22 | 23 | Many applications store files both locally and in the cloud. For this 24 | reason, you may specify a default "cloud" driver here. This driver 25 | will be bound as the Cloud disk implementation in the container. 26 | 27 */ 28 29 'cloud' => env('FILESYSTEM_CLOUD', 's3'), 30 31 /* 32 |-------------------------------------------------------------------------- 33 | Filesystem Disks 34 |-------------------------------------------------------------------------- 35 | 36 | Here you may configure as many filesystem "disks" as you wish, and you 37 | may even configure multiple disks of the same driver. Defaults have 38 | been setup for each driver as an example of the required options. 39 | 40 | Supported Drivers: "local", "ftp", "s3", "rackspace" 41 | 42 */ 43 44 'disks' => [ 45 46 'local' => [ 47 'driver' => 'local', 48 'root' => storage_path('app/public'), 49 ], 50 51 'public' => [ 52 'driver' => 'local', 53 'root' => storage_path('app/public'), 54 'url' => env('APP_URL').'/storage/public', 55 'visibility' => 'public', 56 ], 57 58 's3' => [ 59 'driver' => 's3', 60 'key' => env('AWS_ACCESS_KEY_ID'), 61 'secret' => env('AWS_SECRET_ACCESS_KEY'), 62 'region' => env('AWS_DEFAULT_REGION'), 63 'bucket' => env('AWS_BUCKET'), 64 ], 65 66 ], 67 68]; 69

.envのregionに関わる箇所は次のように書いています。

PHP

1AWS_DEFAULT_REGION=us-east-1

regionの情報は記述できていると思うのですが、なぜこのようなエラーが発生するのかがわかりません。わかる方がいらっしゃいましたら回答よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

akkman

2020/03/26 06:21

laravelでのs3経験がない状態で申し訳ないのですが 問題の切り分けをする意味合いで一度filesystems.phpのリージョンの箇所に直にリージョンの記述をしてみるとどうでしょう。 もし正常に動作するのであれば、 AWS_DEFAULT_REGIONの呼び出しかデータのもたせ方に原因あるかもしれないですね
ucchii

2020/03/26 07:06

filesystem.phpに直に記述で解決しました! ありがとうございました。
guest

回答1

0

ベストアンサー

Herokuアプリの環境変数はすべてheroku config:setコマンドで設定する必要があります。

heroku config:set AWS_DEFAULT_REGION=us-east-1

なお、.envファイルはHeroku上には無いはずです。通常は.envファイルがGitに無視されるようになっているためです。

投稿2020/04/09 22:42

Lulucom

総合スコア1899

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問