0

Ich versuche, AWS S3/Cloudfront in Symfony mit liipimaginebundle einzurichten, aber ich habe wirklich keine Ahnung, was ich mache.Probleme beim Einrichten von AWS S3/Cloudfront mit Symfony und LiipImagineBundle

Bisher habe ich versucht, die hier http://symfony.com/doc/current/bundles/LiipImagineBundle/cache-resolver/aws_s3.html dokumentiert folgende:

installiert aws-sdk-php:

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

meine Parameter (mit den richtigen Werten nicht diese Dummy-Daten):

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" 

Richten Sie einen Resolver ein (obwohl ich nicht sicher bin, was das überhaupt bedeutet). "%amazon.s3.cache_bucket%" ist in der Dokumentation, aber der Parameter nicht existiert, so habe ich "%amazon.s3.bucket%" statt:

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" 

diese Zeilen hinzugefügt, die Dienste zu erstellen:

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

ich zur Zeit immer diese Fehlermeldung, wenn ich php bin/console server:run laufen:

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

ich habe versucht, ein halbes Dutzend andere configs/tutorials ohne Erfolg. Wenn mir jemand in die richtige Richtung zeigen könnte, wäre ich unglaublich dankbar.

Mit dem Code zur Verfügung gestellt unter Simple S3 Symfony Service mit ein paar Verbesserungen, ich konnte meine Bilder zu meinem s3 Eimer hochladen, aber ich weiß einfach nicht, wie man liipimaginebundle Arbeit mit ihnen bekommen.

Antwort

0

In Vendor/liip/imagine-bundle/DependencyInjection/Compiler/ResolversCompilerPass.php können Sie sehen, der CompilerPass erhält den Wert aus "Resolver" -Attribut des Tags und verwendet es, um ein Referenzobjekt zu erstellen. Dies bedeutet, dass der Resolver die ID eines Dienstes enthalten sollte.

Versuchen ersetzt

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

mit

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

Vielen Dank für Ihre Antwort, leider nach diesem Versuch ich immer noch die gleichen Fehler. – Sarcoma

Verwandte Themen