0

J'essaie de configurer AWS S3/Cloudfront pour qu'il fonctionne avec liipimaginebundle dans Symfony, mais je n'ai aucune idée de ce que je fais.Problèmes lors de la configuration d'AWS S3/Cloudfront avec Symfony et LiipImagineBundle

Jusqu'à présent, j'ai essayé ce qui suit documenté ici http://symfony.com/doc/current/bundles/LiipImagineBundle/cache-resolver/aws_s3.html:

aws-sdk-php installé:

"require": { 
    "aws/aws-sdk-php": "^3.28", 
} 

Configurer mes paramètres (avec les valeurs correctes pas cette données fictives):

amazon.s3.key: "your-aws-key" 
amazon.s3.secret: "your-aws-secret" 
amazon.s3.bucket: "your-bucket.example.com" 
amazon.s3.region: "your-bucket-region" 

Mettre en place un résolveur (même si je ne suis pas sûr de ce que cela signifie même). "%amazon.s3.cache_bucket%" est dans la documentation, mais le paramètre n'existe pas donc j'utilisé à la place "%amazon.s3.bucket%":

liip_imagine: 
    cache: profile_photos 
    resolvers: 
     profile_photos: 
      aws_s3: 
       client_config: 
        credentials: 
         key: "%amazon.s3.key%" 
         secret: "%amazon.s3.secret%" 
        region: "%amazon.s3.region%" 
       bucket: "%amazon.s3.bucket%" 
       get_options: 
        Scheme: https 
       put_options: 
        CacheControl: "max-age=86400" 

ajouté ces lignes pour créer les services:

services: 
    acme.amazon_s3: 
     class: Aws\S3\S3Client 
     factory: Aws\S3\S3Client 
     arguments: 
      - 
       credentials: { key: "%amazon.s3.key%", secret: "%amazon.s3.secret%" } 
       region: "%amazon.s3.region%" 

    acme.imagine.cache.resolver.amazon_s3: 
     class: Liip\ImagineBundle\Imagine\Cache\Resolver\AwsS3Resolver 
     arguments: 
      - "@acme.amazon_s3" 
      - "%amazon.s3.bucket%" 
     tags: 
      - { name: "liip_imagine.cache.resolver", resolver: "amazon_s3" } 

Je reçois actuellement cette erreur quand je exécuter php bin/console server:run:

PHP Fatal error: Uncaught Symfony\Component\Debug\Exception\UndefinedFunctionException: Attempted to call function "S3Client" from namespace "Aws\S3". in /var/www/swing-polls/var/cache/dev/appDevDebugProjectContainer.php:360

J'ai essayé une demi-douzaine d'autres configs/tutoriels en vain. Si quelqu'un peut me diriger dans la bonne direction, je serais incroyablement reconnaissant. Avec le code fourni au Simple S3 Symfony Service avec quelques ajustements, j'ai pu obtenir mes images à télécharger dans mon seau s3, mais je ne sais pas comment faire fonctionner liipimaginebundle avec eux.

Répondre

0

Dans fournisseur/liip/imagine-bundle/DependencyInjection/Compilateur/ResolversCompilerPass.php, vous pouvez voir le CompilerPass obtient la valeur de l'attribut "resolver" de la balise et l'utilise pour créer un objet de référence. Cela signifie que le résolveur doit contenir l'identifiant d'un service.

Essayez de remplacer

tags: 
     - { name: "liip_imagine.cache.resolver", resolver: "amazon_s3" } 

avec

tags: 
     - { name: "liip_imagine.cache.resolver", resolver: "acme.amazon_s3" } 
+0

Merci pour votre réponse, malheureusement après avoir essayé ce que je reçois toujours la même erreur. – Sarcoma