2015-07-02 10 views
5

Zastanawiam się, jak owinąć aws php sdk (aws/aws-sdk-php) w Symfony2, aby użyć jako cdn z SonataMediaBundle.Przesyłanie do AmazonS3 z SonataMediaBundle

Mój obecny sonata confuguration:

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% 

Ale otrzymuję błąd: Attempted to load class "AmazonS3" from the global namespace.

+0

Moi kompozytor Zależności : '" aws/aws-sdk-php ":"^3.0 ", " knplabs/knp-gaufrette-bundle ":" * @ dev "' – peter

Odpowiedz

2

Podobno gra z plikiem konfiguracyjnym jest dobrą rzeczą do zrobienia, w tym przypadku ustalona nasz problem w ten sposób:

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 

z następującą wartością dla s3_region: s3_region: s3-eu-west-1.amazonaws.com

1

Spróbuj użyć https://packagist.org/packages/amazonwebservices/aws-sdk-for-php, jeśli używasz sonata-project/media-bundle < = 2.3.3.

Jak widać na packagist https://packagist.org/packages/sonata-project/media-bundle lub w najnowszej wersji na composer.jsonhttps://github.com/sonata-project/SonataMediaBundle/blob/2.3.3/composer.json#L37 wymaga/sugeruje stary amazonwebservices/aws-sdk-for-php: ~1.5 ale nie nowy aws/aws-sdk-php.

Nowe aws/aws-sdk-php jest wymagane tylko przez dev-master wersję https://packagist.org/packages/sonata-project/media-bundle.

+0

Jak widać, gaufrette obsługuje również ten pakiet: https: // github.com/KnpLabs/Gaufrette/blob/master/composer.json#L30 –

+0

Dziękuję Igor. Zaktualizowałem mojego kompozytora o pakiet Amazon amazon SDK ("amazonwebservices/aws-sdk-for-php": "1.5. *"). Próbowałem już wcześniej, ale miałem inny problem. Curl wywołuje zły URL: https: //[email protected], czegoś brakuje i nie rozumiem, dlaczego. [{"message": "zasób cURL: identyfikator zasobu # 791; błąd cURL: nie można połączyć się z hostem pod adresem: 443 (kod błędu 7 cURL). – peter