Symfony2 + AmazonS3 + KnpGaufretteBundle如何设置密钥和&从DB分泌

时间:2015-03-29 11:22:07

标签: symfony orm doctrine-orm amazon-s3 gaufrette

我想从数据库设置Amazon S3设置,而不是从parameters.yml

设置

在symfony2调用服务之前,有人能指出我如何使用数据库(doctrine)参数的正确方向。

#app/config/config.yml

services:
    acme.aws_s3.client:
        class: Aws\S3\S3Client
        factory_class: Aws\S3\S3Client
        factory_method: 'factory'
        arguments:
            -
                key: %amazon_s3.key%
                secret: %amazon_s3.secret%

# knp_gaufrette
knp_gaufrette:
    adapters:
        profile_photos:
            aws_s3:
                service_id: 'acme.aws_s3.client'
                bucket_name: 'myBucket'
                options:
                    directory: 'myDirectory'   
                    acl: 'public-read'

1 个答案:

答案 0 :(得分:1)

使用您自己的服务工厂进行acme.aws_s3.client服务配置。

services:
    acme.aws_s3.client:
        class: Aws\S3\S3Client
        factory_class: My\S3ClientFactory
        factory_method: createClient
        arguments: [ @settings_repository ] 

@settings_repository - 任何有权访问db的服务。例如。 doctrine实体repositry,或整个对象管理器。

My\S3ClientFactory::createClient - 与本地Aws\S3\S3Client::factory几乎相同,只是它需要db中的参数。

希望这有用。