media sonata - AWS CDN

Saya memiliki aplikasi symfony yang fungsional dengan media sonata. Sampai sekarang, saya menggunakan sistem file. Namun file yang diunggah semakin besar dan saya bersedia menggunakan CDN untuk menyimpan file ini (untuk menghindari masalah alokasi memori).

Saya membuka di sana tetapi konfigurasi ini gagal. Saya memiliki distribusi cloudfront yang berfungsi tetapi opsi "cloudfront" tidak dikenali di bawah sonata_media di config.yml.

Kemudian saya mencoba dan menggunakan ember S3. Konfigurasi terlihat OK tetapi setelah saya mengirimkan formulir unggahan saya di sonata_admin, saya mendapat pesan kesalahan: "tidak dapat menulis kunci"...

Pengguna IAM saya memiliki akses s3 penuh dan bucketnya bersifat publik.

Inilah konfigurasi saya:

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: 

person Brice Le Roux    schedule 23.05.2016    source sumber


Jawaban (1)


Benar untuk pergi "ke sana" dan konfigurasi yang tepat akan terlihat seperti ini:

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
person Udan    schedule 23.05.2016
comment
Terima kasih balasannya. Kenapa ada opsi cloudfront di bawah sonata_media.cdn di kode contoh di sana? - person Brice Le Roux; 24.05.2016
comment
Hal lain: pengguna IAM saya memiliki hak akses penuh s3 tetapi saya mendapatkan kesalahan tidak dapat menulis kunci ketika saya mencoba dan mengirimkan formulir admin sonata saya... - person Brice Le Roux; 24.05.2016
comment
apakah kunci wilayahnya benar? itu harus sama dengan tempat pembuatan ember. - person Udan; 24.05.2016
comment
Cloudfront adalah AWS CDN sedangkan S3 hanyalah sistem file cloud. Anda dapat menggunakan keduanya dan memiliki file cache cloudfront dari s3 jika Anda perlu membaca dari bucket dari seluruh dunia karena CF beroperasi lintas wilayah sedangkan S3 tidak - person Udan; 24.05.2016
comment
Ember saya ada di Frankfurt, yang eu-central-1 jika saya ingat dengan baik. - person Brice Le Roux; 24.05.2016