找不到类“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]

找不到xml找不到类

java 主启动类找不到

找不到类 'dalvik.system....'

eclipse 保存后就找不到类

找不到类“Fideloper\Proxy\TrustProxies”