2014-09-26 3 views
2

LiipImagineBundle을 사용하여 스트림 경로를 인식 할 수 없습니다. 이미지를로드하고 지정된 필터 세트를 적용하는 대신 스트림 경로를 가져 와서 일반 웹 경로 인 것처럼 처리합니다.Symfony2 : Twip 템플릿에서 KnpGaufretteBundle 및 Amazon S3와 함께 LiipImagineBundle 사용

이것은 다양한 출처에서 함께 구성 할 수있는 구성입니다. 이 문제를 정확히 해결할 수 없습니다. LiipImagineBundle에 관한 한 설정이 전혀 달성되지 않은 것처럼 보입니다. 오류나 경고가 발생하지 않으며 로그에 아무것도 없습니다. 그것은 내 구성을 완전히 무시하고 있습니다.

#/src/Acme/StorageBundle/Resources/config/services.yml 
services: 
    acme_storage.amazon_s3: 
    class:  %acme_storage.amazon_s3.class% 
    arguments: 
     options: 
     key:  %acme_storage.amazon_s3.aws_key% 
     secret: %acme_storage.amazon_s3.aws_secret_key% 
     certificate_authority: true 

    liip_imagine.binary.loader.stream.amazon_s3: 
    class: %liip_imagine.binary.loader.stream.class% 
    arguments: 
     - @liip_imagine 
     - 'gaufrette://amazon_s3/' 
    tags: 
     - name: liip_imagine.binary.loader 
     loader: stream.amazon_s3 

    liip_imagine.cache.resolver.amazon_s3: 
    class: Liip\ImagineBundle\Imagine\Cache\Resolver\AmazonS3Resolver 
    arguments: 
     - @acme_storage.amazon_s3 
     - %amazon_s3_bucket_name% 
    tags: 
     - name: liip_imagine.cache.resolver 
     resolver: cache.amazon_s3 

# /app/config/config.yml 
knp_gaufrette: 
    stream_wrapper: 
    protocol:  gaufrette 
    filesystems: 
     amazon_s3: photo_storage 
    adapters: 
    photo_storage: 
     amazon_s3: 
     amazon_s3_id: beebop_storage.amazon_s3 
     bucket_name: %amazon_s3_bucket_name% 
     create:  false 
     options: 
      create:  true 
      region:  %amazon_s3_region% 
    filesystems: 
    photo_storage: 
     adapter:  photo_storage 
     alias:   photo_storage_filesystem 

liip_imagine: 
    cache:    cache.amazon_s3 
    loaders: 
    stream.amazon_s3: 
     stream: 
     wrapper:  gaufrette://amazon_s3 

    filter_sets: 
    cache: ~ 
    event_small: 
     data_loader: stream.amazon_s3 
     quality:  75 
     filters: 
     thumbnail: 
      size:  [60, 60] 
      mode:  outbound 
      allow_upscale: true 

나뭇 가지 :

{{ 'gaufrette://amazon_s3/file.jpg'|imagine_filter('event_small') }} 

가 생산 :

http://example.com/media/cache/resolve/event_small/gaufrette://amazon_s3/file.jpg 

답변

0

난 그냥 주 전,하지만 난 캐시 S3를 사용하지 않았다고했다. 문제는 이미지 경로와 관련이있는 것 같습니다. 나뭇 가지에이 시도 : 데이터 로더가 사용중인 스트림 알고 있기 때문에

{{ 'file.jpg'|imagine_filter('event_small') }} 

, 캐시 해결이 파일에있는 URL을 알고, 당신은 단지 파일 이름을 전달해야합니다. 나의로 설정 다르다

또 다른 것은 내가 gaufrette 경로에 선도적 인 /을 가지고 있다는 것입니다 :

liip_imagine: 
    loaders: 
    stream.amazon_s3: 
     stream: 
     wrapper:  gaufrette://amazon_s3/ 

가 도움이 수 있기를 바랍니다.

+0

변경 사항을 적용한 후에도 LiipImagineBundle의 동작은 변경되지 않습니다. 그냥'imagine_filter()'에 전달하고 로컬 캐시 경로를 앞에 둡니다. – turibe

+0

브라우저에서'http : // example.com/media/cache/resolve/event_small/file.jpg'을 열면 오류가 있습니까? 이 경로는 캐시 된 파일로 리디렉션됩니다. – lsouza

+0

예, "LiCont \ ImagineBundle \ Binary \ Loader \ StreamLoader'에서"주어진 컨텍스트에 유효한 자원이 없습니다 "라는 500 개의 내부 서버 오류가 발생합니다. 나는 그 위치에서 무슨 일이 벌어지고 있는지 더 깊이 들여다 보면서 그것을 이해할 수있을 것이다. – turibe