0

У меня есть функциональное приложение symfony с сонатными носителями. До сих пор я использовал файловую систему. Но загруженные файлы становятся все больше и больше, и я готов использовать CDN для хранения этих файлов (чтобы избежать проблем с распределением памяти).соната media - AWS CDN

Я пошел there, но этот конфиг не удался. У меня есть рабочий облачный дистрибутив, но опция «облачный» не распознается в sonata_media в config.yml.

Затем я попробовал и использовал ведро S3. Конфигурация выглядит нормально, но после того, как я отправлю форму для загрузки в sonata_admin, я получаю сообщение об ошибке: «не могу написать ключ» ...

Мой пользователь IAM имеет полный доступ к s3, а ведро является общедоступным.

вот мой конфиг:

sonata_media: 
db_driver: doctrine_orm 
class: 
    media:    Application\Sonata\MediaBundle\Entity\Media 
    gallery:   Application\Sonata\MediaBundle\Entity\Gallery 
    gallery_has_media: Application\Sonata\MediaBundle\Entity\GalleryHasMedia   Application\Sonata\ClassificationBundle\Entity\Category 
    default_context: default 
    db_driver: doctrine_orm # or doctrine_mongodb, doctrine_phpcr 
providers: 

    #  allowed_mime_types: ['application/pdf', 'application/x-pdf', 'application/rtf', 'text/html', 'text/rtf', 'text/plain', 'video/mp4'] 

    file: 
     service: sonata.media.provider.file 
     resizer: false 
     filesystem: sonata.media.filesystem.local 
     cdn:  sonata.media.cdn.cloudront 
     generator: sonata.media.generator.default 
     thumbnail: sonata.media.thumbnail.format 
     allowed_extensions: ['pdf', 'txt', 'rtf', 'doc', 'docx', 'xls', 'xlsx', 'ppt', 'pttx', 'odt', 'odg', 'odp', 'ods', 'odc', 'odf', 'odb', 'csv', 'xml', 'mp4'] 
     allowed_mime_types: ['application/pdf', 'application/x-pdf', 'application/rtf', 'text/html', 'text/rtf', 'text/plain', 'video/mp4', 'video/webm'] 

    image: 
     service: sonata.media.provider.image 
     resizer: sonata.media.resizer.simple # sonata.media.resizer.square 
     filesystem: sonata.media.filesystem.s3 
     cdn:  sonata.media.cdn.server 
     generator: sonata.media.generator.default 
     thumbnail: sonata.media.thumbnail.format 
     allowed_extensions: ['jpg', 'png', 'jpeg'] 
     allowed_mime_types: ['image/pjpeg', 'image/jpeg', 'image/png', 'image/x-png'] 

    youtube: 
     service: sonata.media.provider.youtube 
     resizer: sonata.media.resizer.simple 
     filesystem: sonata.media.filesystem.s3 
     cdn:  sonata.media.cdn.server 
     generator: sonata.media.generator.default 
     thumbnail: sonata.media.thumbnail.format 
     html5: false 

    dailymotion: 
     service: sonata.media.provider.dailymotion 
     resizer: sonata.media.resizer.simple 
     filesystem: sonata.media.filesystem.s3 
     cdn:  sonata.media.cdn.server 
     generator: sonata.media.generator.default 
     thumbnail: sonata.media.thumbnail.format 
contexts: 
    default: # the default context is mandatory 
     download: 
      strategy: sonata.media.security.forbidden_strategy 
      mode: http 
     providers: 
      - sonata.media.provider.dailymotion 
      - sonata.media.provider.youtube 
      - sonata.media.provider.image 
      - sonata.media.provider.file 

     formats: 
      small: { width: 100 , quality: 70} 
      big: { width: 500 , quality: 70} 

cdn: 
    server: 
     path: %s3_bucket_path%/uploads/media/ 

    #cloufront: ~ 
    #  path: http://%cloudfront_domain%.cloudfront.net/uploads/media 
    #  distribution_id: %cloudfront_id% 
    #  key: %cloudfront_key% 
    #  secret: %cloudfront_secret% 

filesystem: 
    local: 
     directory: %kernel.root_dir%/../web/uploads/media 
     create:  false 

    s3: 
     bucket: %bucket_name" 
     accessKey: %access_key% 
     secretKey:%secret_key% 
     region: 

ответ

0

Это было правильно идти «туда» и право конфигурации должен выглядеть следующим образом:

cdn: 
    server: 
     path: http://%bucketname%.s3.amazonaws.com/blablafolder 

filesystem: 
    s3: 
     bucket: %bucketname% 
     accessKey: %aws_access% 
     secretKey: %aws_secret% 
     create: false 
     region: us-east-1 
     storage: standard 
     acl: public 
+0

спасибо за ответ. Каким образом существует опция «облачного» варианта в файле sonata_media.cdn в примере «там»? –

+0

Другое дело: у моего пользователя IAM есть все права доступа s3, но я получаю ошибку «не могу написать ключ», когда я пытаюсь отправить свою форму аннотации сонаты ... –

+0

является правилом региона? он должен быть таким же, как тот, где создается ведро. – Udan