Clase ‘League\Flysystem\AwsS3v3\AwsS3Adapter’ no encontrada (Laravel + Heroku)

3 minutos de lectura

conecte mi aplicación laravel 5.4 en heroku con aws s3 para guardar y mostrar imágenes que cargo con un tablero.

En local no tengo problema con subir y ver las imágenes, incluso estas se almacenan en el cubo que hice. Pero cuando configuro aws en heroku para hacer pruebas allí, aparece el error: Clase ‘Liga\Flysystem\AwsS3v3\AwsS3Adapter’

Ya eliminé y reinstalé el paquete de composer, no sé por qué no aparece el error en mi entorno local.

Muchísimas gracias.

  • ¿Cómo implementas tu aplicación en Heroku? ¿Están las dependencias incluso instaladas con composer install durante el despliegue, o es el contenido de la vendor directorio sincronizado con la producción de lo contrario?

    – localheinz

    10/08/2017 a las 20:50

  • ¿Puedes compartir el contenido de tu composer.json?

    – localheinz

    10 de agosto de 2017 a las 20:52

  • ya ha pasado más de un año, ¿no encontró la respuesta correcta jajaja?

    – Birá

    4 de abril de 2019 a las 3:06

se olvidó de instalar la biblioteca necesaria

composer require league/flysystem-aws-s3-v3

buena suerte

  • estamos usando Laravel 8.34 que está bloqueado para league/flysystem:^1.1, y nos impidió usarlo como arriba. Afortunadamente aquí está la respuesta: stackoverflow.com/a/65002651/697579 composer require league/flysystem-aws-s3-v3:"^1.0"

    – fernandojmartin

    9 abr 2021 a las 19:07

  • Tuve que ejecutarlo con el -W bandera: composer require league/flysystem-aws-s3-v3 "~1.0" -W

    – kevnk

    24 de agosto de 2021 a las 17:24

Para el uso de laravel 8

 composer require --with-all-dependencies league/flysystem-aws-s3-v3 "^1.0"

  • ¿Por qué usar v1 cuando la última versión es 2.1.0 a partir de agosto de 2021?

    – ycl

    22 de agosto de 2021 a las 21:44


  • Cuando usé esto, la segunda versión aún no se había lanzado.

    – Josh Alecyan

    9 de noviembre de 2021 a las 8:31

  • gran ayuda, solucione mi problema en 2 minutos!

    – iRviNe48

    19 de julio a las 13:10

Resolví el mío con

composer require guzzlehttp/psr7 "1.8.1"

a la primera versión anterior de la versión 2.0.0 ya que el paquete was sdk aún no es compatible con la versión 2.0.0 … luego

composer require league/flysystem-aws-s3-v3 "~1.0" --update-with-all-dependencies

Según los documentos de Laravel:

https://laravel.com/docs/8.x/filesystem

Necesitas esta dependencia

composer require --with-all-dependencies league/flysystem-aws-s3-v3 "^1.0"

@localheinz Cuando hice la implementación, ejecuté: instalación del compositor

Pero en heroku los paquetes los instalas desde la consola que tiene el dashboard de heroku.

Pero cuando quiero agregar o quitar el paquete liga/flysystem-aws-s3-v3 sale el siguiente mensaje:

El paquete enumerado para la actualización no está instalado. Postergación.

Entonces creo que hay un caché en el medio, porque todo funciona bien para mí.

{
"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
}
  }

Avatar de usuario de يعرب المصطفى
يعرب المصطفى

Para mí, tuve el mismo problema e intenté muchas soluciones, pero nada funcionó conmigo. Finalmente descubrí que flysystem-aws-s3-v2 está en composer.lock aunque estaba usando flysystem-aws-s3-v3 con el comando: composer require league/flysystem-aws-s3-v3 que no cambia nada en composer.lock entonces lo que hice es que quité vendor carpeta y composer.lock archivar y ejecutar composer install y eso resolvió el problema para mí.

Avatar de usuario de Gevorg Melkumyan
Gevorg Melkumyan

Mi caso fue un poco más difícil, tuve que actualizar un par de dependencias relacionadas para tenerlo en funcionamiento. Principalmente actualicé aws/aws-sdk-php a la versión que el compositor mencionó cuando ejecuté:
composer require --with-all-dependencies league/flysystem-aws-s3-v3 "^1.0".

¿Ha sido útil esta solución?