5

我想知道如何将 aws php sdk ( aws/aws-sdk-php ) 包装在 Symfony2 中,以便与 SonataMediaBundle 一起用作 cdn

我目前的奏鸣曲配置:

sonata_media:
    default_context: default
    db_driver: doctrine_orm
    contexts:
        default:
            providers:
                - sonata.media.provider.image

            formats:
                default: { width: 100 , height: 100, quality: 70}

        avatar:
            providers:
                - sonata.media.provider.image

            formats:
                medium: { width: 750 , quality: 90}

    cdn:
        server:
            path: http://%s3_bucket_name%.s3-website-%s3_region%.amazonaws.com/%env%

    providers:
        image:
            filesystem: sonata.media.filesystem.s3
            service:    sonata.media.provider.image

    filesystem:
        local:
            directory:  %kernel.root_dir%/../web/uploads/media
            create:     false
        s3:
            bucket: %s3_bucket_name%
            accessKey: %s3_access_key%
            secretKey: %s3_secret_key%
            region: %s3_region%@
            directory: %env%

但我收到一个错误:Attempted to load class "AmazonS3" from the global namespace

4

2 回答 2

2

显然,使用配置文件是正确的做法,在这种情况下,我们以这种方式解决了我们的问题:

cdn:
  server:
    #path: http://%s3_bucket_name%.s3-website-%s3_region%.amazonaws.com/%env%
    path: http://%s3_region%/%s3_bucket_name%/selfies/%env% # this one is working

s3_region 具有以下值:s3_region: s3-eu-west-1.amazonaws.com

于 2015-08-27T11:59:22.700 回答
1

如果您使用<= 2.3.3,请尝试使用https://packagist.org/packages/amazonwebservices/aws-sdk-for-php 。sonata-project/media-bundle

正如您在 packagist 中看到的那样 https://packagist.org/packages/sonata-project/media-bundle 或最新版本的composer.json https://github.com/sonata-project/SonataMediaBundle/blob/2.3.3/composer.json #L37它需要/建议旧amazonwebservices/aws-sdk-for-php: ~1.5但不是新的aws/aws-sdk-php

aws/aws-sdk-php只有https://packagist.org/packages/sonata-project/media-bundledev-master的版本需要New 。

于 2015-08-22T12:50:24.847 回答