找不到类“League\Flysystem\AwsS3v3\AwsS3Adapter”(Laravel + Heroku)
Posted
技术标签:
【中文标题】找不到类“League\\Flysystem\\AwsS3v3\\AwsS3Adapter”(Laravel + Heroku)【英文标题】:Class 'League\Flysystem\AwsS3v3\AwsS3Adapter' not found (Laravel + Heroku)找不到类“League\Flysystem\AwsS3v3\AwsS3Adapter”(Laravel + Heroku) 【发布时间】:2018-01-19 01:01:19 【问题描述】:将我在 heroku 中的 laravel 5.4 应用程序与 aws s3 连接,以保存和显示我使用仪表板上传的图像。
在本地我上传和查看图像没有问题,即使这些都存储在我制作的存储桶中。但是当我在 heroku 中设置 aws 以在那里进行测试时,我收到错误:Class 'League\Flysystem\AwsS3v3\AwsS3Adapter'
我已经从composer删除并重新安装了包,我不知道为什么错误没有出现在我的本地环境中。
非常感谢。
【问题讨论】:
如何将应用部署到 Heroku?是否在部署期间甚至使用composer install
安装了依赖项,或者vendor
目录的内容是否与生产同步?
可以分享一下你composer.json
的内容吗?
已经一年多了,没找到正确答案lol?
【参考方案1】:
根据 Laravel 文档:
https://laravel.com/docs/8.x/filesystem
你需要这个依赖
composer require --with-all-dependencies league/flysystem-aws-s3-v3 "^1.0"
【讨论】:
【参考方案2】:我解决了我的问题
composer require guzzlehttp/psr7 "1.8.1"
首先从版本 2.0.0 降级,因为 was sdk 包还不支持版本 2.0.0.. 然后
composer require league/flysystem-aws-s3-v3 "~1.0" --update-with-all-dependencies
【讨论】:
【参考方案3】:我的情况有点棘手,我必须升级几个相关的依赖项才能让它运行起来。主要是我将aws/aws-sdk-php
升级到了我运行时作曲家提到的版本:
composer require --with-all-dependencies league/flysystem-aws-s3-v3 "^1.0"
.
【讨论】:
【参考方案4】:对于 laravel 8 使用
composer require --with-all-dependencies league/flysystem-aws-s3-v3 "^1.0"
【讨论】:
为什么在 2021 年 8 月的最后一个版本是 2.1.0 时使用 v1? 我用这个的时候,第二版还没有发布【参考方案5】:对我来说,我遇到了同样的问题并尝试了很多解决方案,但都没有对我有用。最后我发现flysystem-aws-s3-v2
在composer.lock 中,尽管我使用flysystem-aws-s3-v3
和命令:composer require league/flysystem-aws-s3-v3
这并没有改变composer.lock
中的任何内容,所以我所做的是我删除了vendor
文件夹和composer.lock
文件并运行 composer install
并为我解决了问题。
【讨论】:
【参考方案6】:您忘记安装所需的库
composer require league/flysystem-aws-s3-v3
祝你好运
【讨论】:
感谢您的帮助。 我们使用的是 Laravel 8.34,它被锁定到league/flysystem:^1.1
,并阻止我们像上面那样使用它。幸运的是答案:***.com/a/65002651/697579composer require league/flysystem-aws-s3-v3:"^1.0"
@fernandojmartin 你的解决方案对我有用,谢谢
@fernandojmartin 谢谢,我在找那个。
我必须使用 -W
标志运行它:composer require league/flysystem-aws-s3-v3 "~1.0" -W
【参考方案7】:
@localheinz 当我进行部署时,我运行:composer install
但在 heroku 中,软件包从具有 heroku 仪表板的控制台安装它们。
但是当我想添加或删除包 league/flysystem-aws-s3-v3 时,会出现以下消息:
未安装列出的更新包。忽略。
所以我认为两者之间有一个缓存,因为一切对我来说都很好。
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require":
"php": ">=5.6.4",
"barryvdh/laravel-debugbar": "^2.4",
"fzaninotto/faker": "^1.6",
"laravel/framework": "5.4.*",
"laravel/socialite": "^3.0",
"laravel/tinker": "~1.0",
"unisharp/laravel-ckeditor": "^4.6",
"league/flysystem-aws-s3-v3": "~1.0"
,
"require-dev":
"mockery/mockery": "0.9.*"
,
"autoload":
"classmap": [
"database"
],
"psr-4":
"App\\": "app/"
,
"autoload-dev":
"psr-4":
"Tests\\": "tests/"
,
"scripts":
"post-root-package-install": [
"php -r \"file_exists('.env') || copy('.env.example', '.env');\""
],
"post-create-project-cmd": [
"php artisan key:generate"
],
"post-install-cmd": [
"Illuminate\\Foundation\\ComposerScripts::postInstall",
"php artisan optimize"
],
"post-update-cmd": [
"Illuminate\\Foundation\\ComposerScripts::postUpdate",
"php artisan optimize"
]
,
"config":
"preferred-install": "dist",
"sort-packages": true,
"optimize-autoloader": true
【讨论】:
以上是关于找不到类“League\Flysystem\AwsS3v3\AwsS3Adapter”(Laravel + Heroku)的主要内容,如果未能解决你的问题,请参考以下文章
找不到 Spring Boot Mongo Reactive 类 - 找不到类 [org.springframework.data.mongodb.MongoDatabaseFactory]