使用 SonataMediaBundle 上传到 AmazonS3
Upload to AmazonS3 with SonataMediaBundle
我想知道如何包装 aws php sdk (aws/aws-sdk-php) within Symfony2 in order to use as cdn with SonataMediaBundle.
我目前的奏鸣曲配置:
sonata_media:
default_context: default
db_driver: doctrine_orm
contexts:
default:
providers:
- sonata.media.provider.image
formats:
default: { width: 100 , height: 100, quality: 70}
avatar:
providers:
- sonata.media.provider.image
formats:
medium: { width: 750 , quality: 90}
cdn:
server:
path: http://%s3_bucket_name%.s3-website-%s3_region%.amazonaws.com/%env%
providers:
image:
filesystem: sonata.media.filesystem.s3
service: sonata.media.provider.image
filesystem:
local:
directory: %kernel.root_dir%/../web/uploads/media
create: false
s3:
bucket: %s3_bucket_name%
accessKey: %s3_access_key%
secretKey: %s3_secret_key%
region: %s3_region%@
directory: %env%
但是我收到一个错误:Attempted to load class "AmazonS3" from the global namespace
。
如果使用 sonata-project/media-bundle
<= 2.3.3.
,请尝试使用 https://packagist.org/packages/amazonwebservices/aws-sdk-for-php
正如您在 packagist 看到的那样
https://packagist.org/packages/sonata-project/media-bundle
或者在最新版本的 composer.json
https://github.com/sonata-project/SonataMediaBundle/blob/2.3.3/composer.json#L37 它 requires/suggests 旧的 amazonwebservices/aws-sdk-for-php: ~1.5
但不是新的 aws/aws-sdk-php
.
只有 https://packagist.org/packages/sonata-project/media-bundle 的 dev-master
版本需要新的 aws/aws-sdk-php
。
显然,使用配置文件是正确的做法,在这种情况下,我们以这种方式解决了问题:
cdn:
server:
#path: http://%s3_bucket_name%.s3-website-%s3_region%.amazonaws.com/%env%
path: http://%s3_region%/%s3_bucket_name%/selfies/%env% # this one is working
s3_region 的值如下:s3_region: s3-eu-west-1.amazonaws.com
我想知道如何包装 aws php sdk (aws/aws-sdk-php) within Symfony2 in order to use as cdn with SonataMediaBundle.
我目前的奏鸣曲配置:
sonata_media:
default_context: default
db_driver: doctrine_orm
contexts:
default:
providers:
- sonata.media.provider.image
formats:
default: { width: 100 , height: 100, quality: 70}
avatar:
providers:
- sonata.media.provider.image
formats:
medium: { width: 750 , quality: 90}
cdn:
server:
path: http://%s3_bucket_name%.s3-website-%s3_region%.amazonaws.com/%env%
providers:
image:
filesystem: sonata.media.filesystem.s3
service: sonata.media.provider.image
filesystem:
local:
directory: %kernel.root_dir%/../web/uploads/media
create: false
s3:
bucket: %s3_bucket_name%
accessKey: %s3_access_key%
secretKey: %s3_secret_key%
region: %s3_region%@
directory: %env%
但是我收到一个错误:Attempted to load class "AmazonS3" from the global namespace
。
如果使用 sonata-project/media-bundle
<= 2.3.3.
正如您在 packagist 看到的那样
https://packagist.org/packages/sonata-project/media-bundle
或者在最新版本的 composer.json
https://github.com/sonata-project/SonataMediaBundle/blob/2.3.3/composer.json#L37 它 requires/suggests 旧的 amazonwebservices/aws-sdk-for-php: ~1.5
但不是新的 aws/aws-sdk-php
.
只有 https://packagist.org/packages/sonata-project/media-bundle 的 dev-master
版本需要新的 aws/aws-sdk-php
。
显然,使用配置文件是正确的做法,在这种情况下,我们以这种方式解决了问题:
cdn:
server:
#path: http://%s3_bucket_name%.s3-website-%s3_region%.amazonaws.com/%env%
path: http://%s3_region%/%s3_bucket_name%/selfies/%env% # this one is working
s3_region 的值如下:s3_region: s3-eu-west-1.amazonaws.com