首页 文章

配置LiipImagineBundle Symfony以使用Flysystem

提问于
浏览
0

我一直在尝试配置一个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']]

我不确定这是否是正确的,但我不能让这个工作 .

任何帮助或建议将不胜感激 .

1 回答

  • 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
    

相关问题