LaravelでAWSのS3接続時のエラー(InvalidArgumentException)
Laravelで「league/flysystem-aws-s3-v3」を使ってS3にアップロードした画像をblade内で表示しようとした時に以下のエラーが出た。
InvalidArgumentException
Found 1 error while validating the input provided for the GetObject operation: [Key] expected string length to be >= 1, but found string length of 0 (View: /…/example.blade.php)
状況
正常に画像がアップロードされて、アップロードした画像も普通に表示ができていました。ところがある状況下でのみ上記のエラーが発生しており、原因がわからないという状況でした。
結局はっきりはわからなかったけど、blade内で使っていたStorage::disk('s3')->url()
メソッドの引数に空文字を渡している時に起こるような気がする。(違うかも)
原因
「.env」にAWS_URL
を書いていなかった。。。
AWS_URL
は省略できるとどこかで見たので省略していた。以下のように追記したらエラーは起こらなくなった。
#前後省略 AWS_ACCESS_KEY_ID=アクセスキー AWS_SECRET_ACCESS_KEY=シークレットキー AWS_DEFAULT_REGION=ap-northeast-1 AWS_BUCKET=バケット名 AWS_URL=https://s3.ap-northeast-1.amazonaws.com/バケット名 // ←追記 #前後省略
どういうつながりでエラーになっていたのかわからないけど、原因は間違いなくコレでした。
-
前の記事
【Laravel8】ユーザーの新規登録を制限する 2021.06.24
-
次の記事
Laravelで複数ファイルをZIPでまとめてストリーミングダウンロードさせる方法 2021.09.04
コメントを書く