sonata_media:
class:
media: App\Entity\SonataMediaMedia
gallery: App\Entity\SonataMediaGallery
gallery_has_media: App\Entity\SonataMediaGalleryHasMedia
db_driver: doctrine_orm # or doctrine_mongodb, doctrine_phpcr it is mandatory to choose one here
default_context: default # you need to set a context
contexts:
default: # the default context is mandatory
providers:
# - sonata.media.provider.dailymotion
# - sonata.media.provider.youtube
- sonata.media.provider.image
- sonata.media.provider.file
# - sonata.media.provider.vimeo
formats:
small: { width: 100 , quality: 70}
big: { width: 500 , quality: 70}
banks: # https://sonata-project.org/bundles/media/3-x/doc/reference/media_context.html
providers:
- sonata.media.provider.image
formats:
product_list: { width: 140 , quality: 70}
product_detail: { width: 200 , quality: 70}
cms_preview: { width: 100 , quality: 70}
cms_relationship_preview: { width: 77 , quality: 70}
cards:
providers:
- sonata.media.provider.image
formats:
card_list_mobile: { width: 136 , quality: 70}
card_list_tablet: { width: 152 , quality: 70}
card_list_desktop: { width: 157 , quality: 70}
product_detail: { width: 200 , quality: 70}
product_carousel: { width: 70 , quality: 70}
cms_preview: { width: 90 , quality: 70}
article_mobile: { width: 371 , quality: 70}
article_tablet: { width: 386 , quality: 70}
article_desktop: { width: 628 , quality: 70}
cdn:
server:
path: "https://bucketname.s3.region.amazonaws.com" # http://media.sonata-project.org
filesystem:
local:
directory: "%kernel.root_dir%/../public/uploads/media"
create: false
s3:
bucket: '%env(S3_BUCKET)%'
accessKey: '%env(AWS_ACCESS_KEY_ID)%'
secretKey: '%env(AWS_SECRET_ACCESS_KEY)%'
create: true
region: region
version: 'latest' # change according the API version you are using
storage: standard # can be one of: standard or reduced
acl: public # can be one of: public, private, open, auth_read, owner_read, owner_full_control
cache_control: max-age=86400 # or any other"
directory: "public/uploads/media/"
providers:
file:
service: sonata.media.provider.file
resizer: false
filesystem: sonata.media.filesystem.s3
cdn: sonata.media.cdn.server
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']
allowed_mime_types: ['application/pdf', 'application/x-pdf', 'application/rtf', 'text/html', 'text/rtf', 'text/plain']
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.liip_imagine
allowed_extensions: ['jpg', 'png', 'jpeg']
allowed_mime_types: ['image/pjpeg', 'image/jpeg', 'image/png', 'image/x-png']
When I try to upload a new image through the normal media manager, so
/admin/app/sonatamediamedia/create
I always have this error
The "default/0001/01/61fc4b8aa4950c91850a23e5261c8c210613512e.png" file does not exist or is not readable.
and this is the stacktrace
Symfony\Component\Mime\Exception\InvalidArgumentException:
The "default/0001/01/61fc4b8aa4950c91850a23e5261c8c210613512e.png" file does not exist or is not readable.
at vendor/symfony/mime/FileinfoMimeTypeGuesser.php:50
at Symfony\Component\Mime\FileinfoMimeTypeGuesser->guessMimeType('default/0001/01/61fc4b8aa4950c91850a23e5261c8c210613512e.png')
(vendor/symfony/mime/MimeTypes.php:134)
at Symfony\Component\Mime\MimeTypes->guessMimeType('default/0001/01/61fc4b8aa4950c91850a23e5261c8c210613512e.png')
(vendor/sonata-project/media-bundle/src/Metadata/AmazonMetadataBuilder.php:123)
at Sonata\MediaBundle\Metadata\AmazonMetadataBuilder->getContentType('default/0001/01/61fc4b8aa4950c91850a23e5261c8c210613512e.png')
(vendor/sonata-project/media-bundle/src/Metadata/AmazonMetadataBuilder.php:68)
at Sonata\MediaBundle\Metadata\AmazonMetadataBuilder->get(object(SonataMediaMedia), 'default/0001/01/61fc4b8aa4950c91850a23e5261c8c210613512e.png')
(vendor/sonata-project/media-bundle/src/Metadata/ProxyMetadataBuilder.php:88)
at Sonata\MediaBundle\Metadata\ProxyMetadataBuilder->getAmazonBuilder(object(SonataMediaMedia), 'default/0001/01/61fc4b8aa4950c91850a23e5261c8c210613512e.png')
(vendor/sonata-project/media-bundle/src/Metadata/ProxyMetadataBuilder.php:56)
at Sonata\MediaBundle\Metadata\ProxyMetadataBuilder->get(object(SonataMediaMedia), 'default/0001/01/61fc4b8aa4950c91850a23e5261c8c210613512e.png')
(vendor/sonata-project/media-bundle/src/Provider/FileProvider.php:375)
at Sonata\MediaBundle\Provider\FileProvider->setFileContents(object(SonataMediaMedia))
(vendor/sonata-project/media-bundle/src/Provider/FileProvider.php:143)
at Sonata\MediaBundle\Provider\FileProvider->postPersist(object(SonataMediaMedia))
(vendor/sonata-project/media-bundle/src/Listener/BaseMediaEventSubscriber.php:67)
at Sonata\MediaBundle\Listener\BaseMediaEventSubscriber->postPersist(object(LifecycleEventArgs))
(vendor/symfony/doctrine-bridge/ContainerAwareEventManager.php:58)
at Symfony\Bridge\Doctrine\ContainerAwareEventManager->dispatchEvent('postPersist', object(LifecycleEventArgs))
(vendor/doctrine/orm/lib/Doctrine/ORM/Event/ListenersInvoker.php:117)
at Doctrine\ORM\Event\ListenersInvoker->invoke(object(ClassMetadata), 'postPersist', object(SonataMediaMedia), object(LifecycleEventArgs), 4)
(vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php:1117)
at Doctrine\ORM\UnitOfWork->executeInserts(object(ClassMetadata))
(vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php:400)
at Doctrine\ORM\UnitOfWork->commit(null)
(vendor/doctrine/orm/lib/Doctrine/ORM/EntityManager.php:370)
at Doctrine\ORM\EntityManager->flush()
(vendor/sonata-project/doctrine-orm-admin-bundle/src/Model/ModelManager.php:184)
at Sonata\DoctrineORMAdminBundle\Model\ModelManager->create(object(SonataMediaMedia))
(vendor/sonata-project/admin-bundle/src/Admin/AbstractAdmin.php:781)
at Sonata\AdminBundle\Admin\AbstractAdmin->create(object(SonataMediaMedia))
(vendor/sonata-project/admin-bundle/src/Controller/CRUDController.php:601)
at Sonata\AdminBundle\Controller\CRUDController->createAction()
(vendor/sonata-project/media-bundle/src/Controller/MediaAdminController.php:42)
at Sonata\MediaBundle\Controller\MediaAdminController->createAction(object(Request))
(vendor/symfony/http-kernel/HttpKernel.php:158)
at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), 1)
(vendor/symfony/http-kernel/HttpKernel.php:80)
at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), 1, true)
(vendor/symfony/http-kernel/Kernel.php:201)
at Symfony\Component\HttpKernel\Kernel->handle(object(Request))
(public/index.php:25)
If I change the the provider filesystem option, with
filesystem: sonata.media.filesystem.local
It works correctly!!!
Can anyone give me a clue about it?!
I'm struggling with that since 2 days...
Environment
Sonata Packages
Symfony packages
PHP version
Subject
I've trying to set up the bundle in order to use my S3 bucket on AWS but the provider does not work. I've read all the official documentation and I've made dozens of tests https://sonata-project.org/bundles/media/3-x/doc/reference/amazon_s3.html
That's my one
When I try to upload a new image through the normal media manager, so /admin/app/sonatamediamedia/create I always have this error
and this is the stacktrace
If I change the the provider filesystem option, with filesystem: sonata.media.filesystem.local It works correctly!!!
Can anyone give me a clue about it?! I'm struggling with that since 2 days...
Thank you