目標:AWSでデプロイしたLaravelアプリケーションで、S3にファイルをアップロードさせる
お世話になっております。
エラー文や連想されるキーワードで検索しましたが、打開策が見当たらないため質問させていただきます。
エラー前に行ったこと
S3にバケットとフォルダを作成。
laravel側の設定も完了させ、パッケージダウンロードをし、いざアップロードする際にエラーが発生しました。
$ composer require league/flysystem-aws-s3-v3 ~1.0
laravel/composer.json ( laravel/.env も編集済み )
"license": "MIT", "require": { "php": "^7.2.5", "fideloper/proxy": "^4.2", "fruitcake/laravel-cors": "^2.0", "guzzlehttp/guzzle": "^6.3", "laravel/framework": "^7.22.2", "laravel/tinker": "^2.0", "league/flysystem-aws-s3-v3": "~1.0" //追加を確認 },
エラーメッセージ
Class 'League\Flysystem\AwsS3v3\AwsS3Adapter' not found
エラー箇所 : laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php
PHP
1 use League\Flysystem\AwsS3v3\AwsS3Adapter as S3Adapter; 2 3 public function createS3Driver(array $config) 4 { 5 $s3Config = $this->formatS3Config($config); 6 7 $root = $s3Config['root'] ?? null; 8 9 $options = $config['options'] ?? []; 10 11 return $this->adapt($this->createFlysystem( 12 new S3Adapter(new S3Client($s3Config), $s3Config['bucket'], $root, $options), $config //ここでエラー発生 13 )); 14 }
単純にclassが見つからないと言われているので、AWSS3Adapter.php のnemaspaceを確認し、useの書き換えを行い対応しようとしました。
この記事では AWSS3Adapter.php のnamespaceは下記の通りです
PHP
1namespace League\Flysystem\AwsS3v2;
しかし、私の環境ではプロジェクト直下にLeagueディレクトリが存在しません。
そもそもどこを調べても AWSS3Adapter.php ファイルが見つからないため、解決できずにいます。
試したこと
$ composer dump-autoload //composerのclass再読み込み
$ composer update league/flysystem-aws-s3-v3 //flysystem-aws-s3-v3の更新
キャッシュクリア系
$ composer dump-autoload
$ php artisan config:cache
$ php artisan route:clear
$ php artisan cache:clear
回答いただきたい内容
- laravil/League ディレクトリが存在しないが、通常はパッケージインストール時に自動生成されるものなのか
- なぜ laravil/League ディレクトリ、付随するファイルがないのか(インストール失敗?)
そのほか考えられる原因、アドバイスがありましたらお知恵をお貸しください。
補足情報
ハードOS:windows10 / サーバーOS:cnetOS7 / Apache:2.4.6 / Composer 1.10.13 / 独自ドメインで常時SSL化済み
s3連携で参考にしたサイト
https://www.ritolab.com/entry/8#aj_2
https://qiita.com/nobu0717/items/51dfcecda90d3c5958b8
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。