Ich habe eine funktionelle Symfony-Anwendung mit Sonatenmedien. Bis jetzt benutzte ich das Dateisystem. Aber die hochgeladenen Dateien werden immer größer und ich bin bereit, ein CDN zu verwenden, um diese Dateien zu speichern (um Speicherzuweisungsprobleme zu vermeiden).sonata media - AWS CDN
Ich ging there, aber diese Konfiguration schlägt fehl. Ich habe eine funktionierende Cloudfront-Distribution, aber die Option "cloudfront" wird unter sonata_media in config.yml nicht erkannt.
Dann habe ich versucht und einen S3-Eimer verwendet. Die Konfiguration sieht OK aus, aber nachdem ich mein Upload-Formular in Sonata_Admin abgeschickt habe, erhalte ich die Fehlermeldung: "kann den Schlüssel nicht schreiben" ...
Mein IAM-Benutzer hat vollen S3-Zugriff und der Bucket ist öffentlich.
kommt meine config:
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:
Danke für die Antwort. Wie kommt es, dass es unter "sonata_media.cdn" eine "cloudfront" -Option im dortigen Beispielcode gibt? –
Eine andere Sache: Mein IAM-Benutzer hat volle s3 Zugriffsrechte, aber ich bekomme einen "Kann nicht Schlüssel schreiben" -Fehler, wenn ich versuche, mein Sonata-Admin-Formular zu senden ... –
ist der Regionsschlüssel korrekt? Es muss identisch mit dem sein, in dem der Bucket erstellt wird. – Udan