我正在尝试在我的Symfony2项目中运行LiipImagine,使用KnpGraufette Bundle访问我的Amazon AWS S3帐户。
现在我已经可以访问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过滤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');
此外:一些主持人可以添加Tag Gaufrette,KnpGaufrette或KnpGaufretteBundle吗?
答案 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适配器。