Настройка LiipImagineBundle Symfony для работы с Flysystem

Я пытался настроить CDN (S3) для работы с LiipImagineBundle, но постоянно застреваю, когда он запрашивает несуществующую службу.

Что это значит?

Значением свойства filesystem_service должна быть служба, которая возвращает экземпляр League\Flysystem\Filesystem.

Отсюда: http://symfony.com/doc/current/bundles/LiipImagineBundle/cache-resolver/flysystem.html

и здесь: http://symfony.com/doc/current/bundles/LiipImagineBundle/data-loader/flysystem.html

Я попытался создать службу, которая возвращает экземпляр League\Flysystem\Filesystem следующим образом:

league.flysystem.s3adaptor:
    class: League\Flysystem\AwsS3v3\AwsS3Adapter
    arguments: ['@acme.s3_client', '%amazon.s3.bucket%', 's3_fs', '@?']

league.flysystem.filesystem:
    class: League\Flysystem\Filesystem
    arguments: ['@league.flysystem.s3adaptor', '@?']
    calls:
        - [addPlugin, ['@oneup_flysystem.plugin.list_with']]

Я не уверен, правильно ли это или нет, но я не могу заставить это работать.

Любая помощь или совет будут очень признательны.


person OrderAndChaos    schedule 21.05.2017    source источник


Ответы (1)


Я был на правильном пути, я просто немного неправильно настроил свой LiipImagineBundle.

Чтобы вернуть экземпляр League\Flysystem\Filesystem, вам сначала нужно создать сервис для адаптера, который вы хотите использовать, в данном случае это делает League.flysystem.s3adaptor. Затем передайте это в качестве аргумента в League.flysystem.filesystem.

league.flysystem.s3adaptor:
    class: League\Flysystem\AwsS3v3\AwsS3Adapter
    arguments: ['@acme.s3_client', '%amazon.s3.bucket%']

league.flysystem.filesystem:
    class: League\Flysystem\Filesystem
    arguments: ['@league.flysystem.s3adaptor']
    calls:
        - [addPlugin, ['@oneup_flysystem.plugin.list_with']]

Конфигурация LiipImagineBundle:

liip_imagine:
    resolvers:
            profile_photos:
                flysystem:
                    filesystem_service: league.flysystem.filesystem
                    root_url:           "https://s3.eu-west-2.amazonaws.com/nameofthebucket/"
                    cache_prefix:       media/cache
                    visibility:         public
    loaders:
        profile_photos:
            flysystem:
                filesystem_service: league.flysystem.filesystem
    data_loader: profile_photos
    cache: profile_photos
person OrderAndChaos    schedule 21.05.2017