2013-06-05 4 views
2

KnpGraufette 번들을 사용하여 Amazon AWS S3 계정에 액세스하는 LifImagine을 Symfony2 프로젝트에서 실행하려고합니다.LifImagine이있는 S3가있는 KnpGaufrette가있는 Symfony2

이제 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 } 

S3의 recource를 필터링 할 수 LiipImagine를 사용하여, 나는 다음과 같은 오류 얻을 : 게다가

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

:

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

내 필터링 테스트를위한 코드는 이것이다를 수있는 몇 가지 진행자 태그 Gaufrette, KnpGaufrette 또는 KnpGaufretteBundle을 추가 하시겠습니까?

+0

이 문제가 해결 되었습니까? 어떻게 한거야? – turibe

+0

아니요, 더 이상 프로젝트에 액세스 할 수 없습니다 : -/ –

답변

3

나는 gaufrette amazon s3 adaper 서비스를 정의 할 필요가 없다고 생각합니다 ... 그냥 gaufette 번들 구성을 사용하십시오.

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 두 개의 어댑터를 등록 위 통지 :

그냥 다음과 같이한다 주어진 https://github.com/liip/LiipImagineBundle/blob/master/Resources/doc/data-loader/stream.md

gaufrette + liip 구성과 같은 liip 구성을 사용합니다.

+2

'% liip_imagine.data.loader.stream.class %'는 이제'% liip_imagine.binary.loader.stream.class %'입니다. – GabrielCol