2

Amazon AWS S3 アカウントにアクセスするために KnpGraufette バンドルを使用して、Symfony2 プロジェクトで LiipImagine を実行しようとしています。

これで、S3 にアクセスし、データを保存およびロードできるようになりました。LiipImagine を使用してローカル画像をフィルタリングできます。ここまでは順調ですね。

ここで、次の構成を使用して、gaufrette/s3 サービスと、このチュートリアルに示されている LiipImagine ans を結合しました。

services:
  amazonS3:
    class: AmazonS3
    arguments:
      options:
        key: '%aws_key%'
        secret: '%aws_secret_key%'
        certificate_authority: '%kernel.root_dir%/config/cacert.pem'
  gaufrette.amazonS3_adapter:
    class: Gaufrette\Adapter\AmazonS3
    arguments:
      service: '@amazonS3'
      bucket_name: '%aws_bucketname%'
  gaufrette.amazonS3.fileSystemService:
    class: Gaufrette\Filesystem
    arguments:
      adapter: '@gaufrette.amazonS3_adapter'
  our.fs.dataloader.s3:
    class: Liip\ImagineBundle\Imagine\Data\Loader\FileSystemLoader
    arguments:
      - "@liip_imagine"
      - "@gaufrette.amazonS3.fileSystemService"
    tags:
      - { name: 'liip_imagine.data.loader', loader: 'gaufrette.amazonS3.fileSystemService' }

liip_imagine:
  filter_sets:
    s3_clientsbar:
      data_loader: 'our.fs.dataloader.s3'
      filters:
        thumbnail: { size: [50, 50], mode: outbound, allow_upscale: true }

LiipImagine を使用して S3 リソースをフィルタリングすると、次のエラーが発生します。

ErrorException: Catchable Fatal Error: Argument 2 passed to Liip\ImagineBundle\Imagine\Data\Loader\FileSystemLoader::__construct() must be an array, object given, called in

私のフィルタリングをテストするためのコードは次のとおりです。

$imagemanagerResponse = $this->container->get('liip_imagine.controller')->filterAction($this->getRequest(),'the-actual-existing-loadable-aws-id' , 's3_clientsbar');

さらに: モデレーターはタグ Gaufrette、KnpGaufrette、または KnpGaufretteBundle を追加できますか?

4

1 に答える 1

3

独自の gaufrette amazon s3 adaper サービスを定義する必要はないと思います... gaufette バンドル構成を使用するだけです。

指定されたhttps://github.com/liip/LiipImagineBundle/blob/master/Resources/doc/data-loader/stream.mdのようなliip構成を使用するだけです

gaufrette + liip 構成は次のようになります。

services:
    amazonS3:
        class: AmazonS3
        arguments:
            options:
                key: '%aws_key%'
                secret: '%aws_secret_key%'
                certificate_authority: '%kernel.root_dir%/config/cacert.pem'

    liip_imagine.data.loader.stream.profile_photos:
        class: "%liip_imagine.data.loader.stream.class%"
        arguments:
            - "@liip_imagine"
            - 'gaufrette://amazon_fs/'
        tags:
            - { name: 'liip_imagine.data.loader', loader: 'stream.profile_photos' }

knp_gaufrette:
    stream_wrapper: ~
    adapters:
        local_adapter:         
            local:
                directory: %kernel.root_dir%/../web/uploads
        amazon_s3_adapter:
            amazon_s3_id: amazonS3
            bucket_name: mybucketname
            options:
                create: true

    filesystems:               
        local_fs:
            adapter:    local_adapter
        amazon_fs:
            adapter: amazon_s3_adapter

上記の例では、ローカルと amazon s3 の 2 つのアダプターを登録したことに注意してください。

于 2013-06-06T19:19:35.597 に答える