У меня есть функциональное приложение symfony с сонатными носителями. До сих пор я использовал файловую систему. Но загруженные файлы становятся все больше и больше, и я готов использовать CDN для хранения этих файлов (чтобы избежать проблем с распределением памяти).соната media - AWS CDN
Я пошел there, но этот конфиг не удался. У меня есть рабочий облачный дистрибутив, но опция «облачный» не распознается в sonata_media в config.yml.
Затем я попробовал и использовал ведро S3. Конфигурация выглядит нормально, но после того, как я отправлю форму для загрузки в sonata_admin, я получаю сообщение об ошибке: «не могу написать ключ» ...
Мой пользователь IAM имеет полный доступ к s3, а ведро является общедоступным.
вот мой конфиг:
sonata_media:
db_driver: doctrine_orm
class:
media: Application\Sonata\MediaBundle\Entity\Media
gallery: Application\Sonata\MediaBundle\Entity\Gallery
gallery_has_media: Application\Sonata\MediaBundle\Entity\GalleryHasMedia Application\Sonata\ClassificationBundle\Entity\Category
default_context: default
db_driver: doctrine_orm # or doctrine_mongodb, doctrine_phpcr
providers:
# allowed_mime_types: ['application/pdf', 'application/x-pdf', 'application/rtf', 'text/html', 'text/rtf', 'text/plain', 'video/mp4']
file:
service: sonata.media.provider.file
resizer: false
filesystem: sonata.media.filesystem.local
cdn: sonata.media.cdn.cloudront
generator: sonata.media.generator.default
thumbnail: sonata.media.thumbnail.format
allowed_extensions: ['pdf', 'txt', 'rtf', 'doc', 'docx', 'xls', 'xlsx', 'ppt', 'pttx', 'odt', 'odg', 'odp', 'ods', 'odc', 'odf', 'odb', 'csv', 'xml', 'mp4']
allowed_mime_types: ['application/pdf', 'application/x-pdf', 'application/rtf', 'text/html', 'text/rtf', 'text/plain', 'video/mp4', 'video/webm']
image:
service: sonata.media.provider.image
resizer: sonata.media.resizer.simple # sonata.media.resizer.square
filesystem: sonata.media.filesystem.s3
cdn: sonata.media.cdn.server
generator: sonata.media.generator.default
thumbnail: sonata.media.thumbnail.format
allowed_extensions: ['jpg', 'png', 'jpeg']
allowed_mime_types: ['image/pjpeg', 'image/jpeg', 'image/png', 'image/x-png']
youtube:
service: sonata.media.provider.youtube
resizer: sonata.media.resizer.simple
filesystem: sonata.media.filesystem.s3
cdn: sonata.media.cdn.server
generator: sonata.media.generator.default
thumbnail: sonata.media.thumbnail.format
html5: false
dailymotion:
service: sonata.media.provider.dailymotion
resizer: sonata.media.resizer.simple
filesystem: sonata.media.filesystem.s3
cdn: sonata.media.cdn.server
generator: sonata.media.generator.default
thumbnail: sonata.media.thumbnail.format
contexts:
default: # the default context is mandatory
download:
strategy: sonata.media.security.forbidden_strategy
mode: http
providers:
- sonata.media.provider.dailymotion
- sonata.media.provider.youtube
- sonata.media.provider.image
- sonata.media.provider.file
formats:
small: { width: 100 , quality: 70}
big: { width: 500 , quality: 70}
cdn:
server:
path: %s3_bucket_path%/uploads/media/
#cloufront: ~
# path: http://%cloudfront_domain%.cloudfront.net/uploads/media
# distribution_id: %cloudfront_id%
# key: %cloudfront_key%
# secret: %cloudfront_secret%
filesystem:
local:
directory: %kernel.root_dir%/../web/uploads/media
create: false
s3:
bucket: %bucket_name"
accessKey: %access_key%
secretKey:%secret_key%
region:
спасибо за ответ. Каким образом существует опция «облачного» варианта в файле sonata_media.cdn в примере «там»? –
Другое дело: у моего пользователя IAM есть все права доступа s3, но я получаю ошибку «не могу написать ключ», когда я пытаюсь отправить свою форму аннотации сонаты ... –
является правилом региона? он должен быть таким же, как тот, где создается ведро. – Udan