0

我試圖設置AWS S3/Cloudfront與Symfony中的liipimaginebundle一起工作,但我真的不知道我在做什麼。使用Symfony和LiipImagineBundle設置AWS S3/Cloudfront時遇到問題

到目前爲止,我曾嘗試以下這裏http://symfony.com/doc/current/bundles/LiipImagineBundle/cache-resolver/aws_s3.html記載:

安裝AWS-SDK-PHP:

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

設置我的參數(用正確的價值觀不是這個虛擬數據):

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" 

設置一個解析器(儘管我不確定這意味着什麼)。 "%amazon.s3.cache_bucket%"在文檔中,但參數不存在,所以我用"%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" 

添加這些行以創建服務:

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

目前我得到這個錯誤,當我運行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

我已經嘗試了半打其他CONFIGS /教程無濟於事。如果有人能指引我正確的方向,我會非常感激。

使用Simple S3 Symfony Service提供的代碼進行了一些調整,我已經能夠將我的圖片上傳到我的s3存儲桶,但我不知道如何讓liipimaginebundle與他們一起工作。

回答

0

在vendor/liip/imagine-bundle/DependencyInjection/Compiler/ResolversCompilerPass.php中,您可以看到CompilerPass從標籤的「resolver」屬性獲取值,並使用它創建Reference對象。這意味着解析器應該包含服務的ID。

嘗試

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

謝謝您的答覆,嘗試此方法後不幸的是我還收到了同樣的錯誤更換

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

。 – Sarcoma