2013-06-05 2 views
2

Я пытаюсь запустить LiipImagine в моем проекте Symfony2, используя пакет KnpGraufette для доступа к моей учетной записи Amazon AWS S3.Symfony2 с KnpGaufrette с S3 с LiipImagine

Теперь я уже могу получить доступ к S3, хранить и загружать данные и все. Я могу использовать LiipImagine для фильтрации локальных изображений. Пока все хорошо.

Теперь я использовал следующую конфигурацию, чтобы склеить мою службу gaufrette/s3 и функции LiipImagine, показанные в этом уроке.

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 для фильтрации recource 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?

+0

Вы когда-нибудь решали эту проблему? Как ты это сделал? – turibe

+0

Нет, и у меня больше нет доступа к проекту: -/ –

ответ

3

Я думаю, что вам не нужно определять собственный сервис gaufrette amazon s3 adaper ... просто используйте конфигурацию пучка gaufette.

Просто используйте liip конфигурацию, как данный https://github.com/liip/LiipImagineBundle/blob/master/Resources/doc/data-loader/stream.md

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 

Просто обратите внимание, что в приведенном выше примере я зарегистрировал два адаптера локальной и амазонка s3.

+2

'% liip_imagine.data.loader.stream.class%' теперь '% liip_imagine.binary.loader.stream.class%' – GabrielCol

Смежные вопросы