LiipImagineBundle + KNPGaufrette + VichUploaderBundle + Amazon S3 не может генерировать миниатюры на S3 - PullRequest
0 голосов
/ 25 сентября 2018

При попытке использовать LiipImagineBundle + VichUploaderBundle и Amazon S3 я сталкиваюсь со странной проблемой.

Когда я загружаю файл через форму symfony (используя поле формы VichFileType), файл успешно создаетсяв Amazon S3 (через Gaufrette).

Когда я отображаю загруженный файл в виде ветки, он отображается идеально.

Однако, когда я пытаюсь создать миниатюру файла (который был загружен на S3), я получаю следующую ошибку:

Служба "liip_imagine.cache.resolver.amazon_s3" зависит от несуществующей службы "1".

Я следовал документации: https://symfony.com/doc/2.0/bundles/LiipImagineBundle/cache-resolver/aws_s3.html

Вот мой app/config/config.yml файл:

# VichUploaderBundle Configuration
vich_uploader:
    db_driver: orm
    twig:      true
    storage:   gaufrette
    mappings:
        campaign_image:
            uri_prefix:         "%aws_base_url%/%aws_bucket_name%/uploads/campaigns"
            upload_destination: campaign_image_fs
            namer:              vich_uploader.namer_uniqid
            delete_on_remove: true
            delete_on_update: true
            inject_on_load: true
        user_identity:
            uri_prefix:         "%aws_base_url%/%aws_bucket_name%/uploads/users"
            upload_destination: user_identity_fs
            namer:              vich_uploader.namer_uniqid
            delete_on_remove: true
            delete_on_update: true
            inject_on_load: true

# LiipImagineBundle Configuration
liip_imagine:
    driver: imagick
    cache: amazon_s3
    resolvers:
        amazon_s3:
            aws_s3:
                client_config:
                    credentials:
                        key:    "%aws_bucket_key%"
                        secret: "%aws_bucket_secret%"
                    region: "%aws_bucket_region%"
                    bucket: "%aws_bucket_name%"
                    version: "2006-03-01"
                bucket: "%aws_bucket_name%"
                cache: true
                get_options:
                    Scheme: https
                put_options:
                    CacheControl: "max-age=86400"
    filter_sets:
        cache: ~
        800x600:
            quality : 93
            filters:
                auto_rotate: ~
                strip: ~
                scale:
                    dim: [ 500, 800 ]

# KnpGaufretteBundle Configuration
knp_gaufrette:
    stream_wrapper: ~
    adapters:
        user_identity_adapter:
            aws_s3:
                service_id: 'app.manager.amazon_s3'
                bucket_name: '%aws_bucket_name%'
                detect_content_type: true
                options:
                    create: true
                    directory: uploads/users
        campaign_image_adapter:
            aws_s3:
                service_id: 'app.manager.amazon_s3'
                bucket_name: '%aws_bucket_name%'
                detect_content_type: true
                options:
                    create: true
                    directory: uploads/campaigns
    filesystems:
        user_identity_fs:
            adapter:    user_identity_adapter
        campaign_image_fs:
            adapter:    campaign_image_adapter

А вот мой файл app / config / services.yml:

    app.manager.amazon_s3:
        class: Aws\S3\S3Client
        factory_class: Aws\S3\S3Client
        factory_method: 'factory'
        arguments:
            -
                version: "2006-03-01"
                region: "%aws_bucket_region%"
                credentials: { "key": "%aws_bucket_key%", "secret": "%aws_bucket_secret%" }

    app.imagine.cache.resolver.amazon_s3:
        class: Liip\ImagineBundle\Imagine\Cache\Resolver\AwsS3Resolver
        arguments:
            - "@app.manager.amazon_s3"
            - "%aws_bucket_name%"
            - "public-read" # Aws\S3\Enum\CannedAcl::PUBLIC_READ (default)
            - { Scheme: https }
            - { CacheControl: "max-age=86400" }
        calls:
            - [ setGetOption, [ Scheme, https ] ]
            - [ setPutOption, [ CacheControl, "max-age=86400" ] ]
        tags:
            - { name: "liip_imagine.cache.resolver", resolver: "amazon_s3"}

Какие-либо причины, почему я не могу заставить его работать?

Любая помощь приветствуется!

Спасибо

...