Sonata 映像包 S3 配置不起作用 环境

问题描述

环境

奏鸣曲包

sonata-project/admin-bundle              3.81.0          The missing Symfony Admin Generator
sonata-project/block-bundle              3.21.0          Symfony SonataBlockBundle
sonata-project/cache                     2.0.1           Cache library
sonata-project/cache-bundle              3.2.1           This bundle provides caching services
sonata-project/datagrid-bundle           3.2.0           Symfony SonataDatagridBundle
sonata-project/doctrine-extensions       1.10.1          Doctrine2 behavioral extensions
sonata-project/doctrine-orm-admin-bundle 3.25.0          Integrate Doctrine ORM into the SonataAdminBundle
sonata-project/exporter                  2.4.1           Lightweight Exporter library
sonata-project/form-extensions           1.7.0           Symfony form extensions
sonata-project/media-bundle              3.28.0          Symfony SonataMediaBundle
sonata-project/notification-bundle       3.10.0          Symfony SonataNotificationBundle
sonata-project/page-bundle               4.x-dev 4a17be4 This bundle provides a Site and Page management through container...
sonata-project/seo-bundle                2.12.0          Symfony SonataSeoBundle
sonata-project/twig-extensions           1.4.1           Sonata twig extensions
sonata-project/user-bundle               4.9.0           Symfony SonataUserBundle

Symfony 软件包

symfony-cmf/routing                      2.3.3           Extends the Symfony routing component for dynamic routes and chai...
symfony-cmf/routing-bundle               2.4.1           Symfony RoutingBundle
symfony/asset                            v4.4.16         Symfony Asset Component
symfony/cache                            v4.4.16         Symfony Cache component with PSR-6,PSR-16,and tags
symfony/cache-contracts                  v2.2.0          Generic abstractions related to caching
symfony/config                           v4.4.16         Symfony Config Component
symfony/console                          v4.4.16         Symfony Console Component
symfony/debug                            v4.4.16         Symfony Debug Component
symfony/dependency-injection             v4.4.16         Symfony DependencyInjection Component
symfony/doctrine-bridge                  v4.4.16         Symfony Doctrine Bridge
symfony/dotenv                           v4.4.16         Registers environment variables from a .env file
symfony/error-handler                    v4.4.16         Symfony ErrorHandler Component
symfony/event-dispatcher                 v4.4.16         Symfony EventDispatcher Component
symfony/event-dispatcher-contracts       v1.1.9          Generic abstractions related to dispatching event
symfony/expression-language              v4.4.16         Symfony ExpressionLanguage Component
symfony/filesystem                       v4.4.16         Symfony Filesystem Component
symfony/finder                           v4.4.16         Symfony Finder Component
symfony/flex                             v1.10.0         Composer plugin for Symfony
symfony/form                             v4.4.16         Symfony Form Component
symfony/framework-bundle                 v4.4.16         Symfony FrameworkBundle
symfony/http-client                      v4.4.16         Symfony HttpClient component
symfony/http-client-contracts            v2.3.1          Generic abstractions related to HTTP clients
symfony/http-foundation                  v4.4.16         Symfony HttpFoundation Component
symfony/http-kernel                      v4.4.16         Symfony HttpKernel Component
symfony/inflector                        v4.4.16         Symfony Inflector Component
symfony/intl                             v4.4.16         A PHP replacement layer for the C intl extension that includes ad...
symfony/mime                             v4.4.16         A library to manipulate MIME messages
symfony/monolog-bridge                   v4.4.16         Symfony Monolog Bridge
symfony/monolog-bundle                   v3.6.0          Symfony MonologBundle
symfony/options-resolver                 v4.4.16         Symfony OptionsResolver Component
symfony/phpunit-bridge                   v5.1.8          Symfony PHPUnit Bridge
symfony/polyfill-intl-grapheme           v1.20.0         Symfony polyfill for intl's grapheme_* functions
symfony/polyfill-intl-icu                v1.20.0         Symfony polyfill for intl's ICU-related data and classes
symfony/polyfill-intl-idn                v1.20.0         Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions
symfony/polyfill-intl-normalizer         v1.20.0         Symfony polyfill for intl's Normalizer class and related functions
symfony/polyfill-mbstring                v1.20.0         Symfony polyfill for the Mbstring extension
symfony/polyfill-php72                   v1.20.0         Symfony polyfill backporting some PHP 7.2+ features to lower PHP ...
symfony/polyfill-php73                   v1.20.0         Symfony polyfill backporting some PHP 7.3+ features to lower PHP ...
symfony/polyfill-php80                   v1.20.0         Symfony polyfill backporting some PHP 8.0+ features to lower PHP ...
symfony/process                          v4.4.16         Symfony Process Component
symfony/property-access                  v4.4.16         Symfony PropertyAccess Component
symfony/routing                          v4.4.16         Symfony Routing Component
symfony/security-acl                     v3.1.0          Symfony Security Component - ACL (Access Control List)
symfony/security-bundle                  v4.4.16         Symfony SecurityBundle
symfony/security-core                    v4.4.16         Symfony Security Component - Core Library
symfony/security-csrf                    v4.4.16         Symfony Security Component - CSRF Library
symfony/security-guard                   v4.4.16         Symfony Security Component - Guard
symfony/security-http                    v4.4.16         Symfony Security Component - HTTP Integration
symfony/service-contracts                v2.2.0          Generic abstractions related to writing services
symfony/stopwatch                        v4.4.16         Symfony Stopwatch Component
symfony/string                           v5.1.8          Symfony String component
symfony/swiftmailer-bundle               v3.5.1          Symfony SwiftmailerBundle
symfony/templating                       v4.4.16         Symfony Templating Component
symfony/translation                      v4.4.16         Symfony Translation Component
symfony/translation-contracts            v2.3.0          Generic abstractions related to translation
symfony/twig-bridge                      v4.4.16         Symfony Twig Bridge
symfony/twig-bundle                      v4.4.16         Symfony TwigBundle
symfony/validator                        v4.4.16         Symfony Validator Component
symfony/var-dumper                       v4.4.18         Symfony mechanism for exploring and dumping PHP variables
symfony/var-exporter                     v4.4.16         A blend of var_export() + serialize() to turn any serializable da...
symfony/web-profiler-bundle              v4.4.16         Symfony WebProfilerBundle
symfony/webpack-encore-bundle            v1.8.0          Integration with your Symfony app & Webpack Encore!
symfony/yaml                             v4.4.16         Symfony Yaml Component
PHP版本
$ php -v
# PHP 7.4.12 (cli) (built: Nov  5 2020 20:24:10) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0,Copyright (c) Zend Technologies
    with Zend OPcache v7.4.12,Copyright (c),by Zend Technologies

主题

我尝试设置捆绑包以便在 AWS 上使用我的 S3 存储桶,但提供程序不起作用。 我已经阅读了所有官方文档并进行了数十次测试 https://sonata-project.org/bundles/media/3-x/doc/reference/amazon_s3.html

这是我的

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_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']

当我尝试通过普通媒体管理器上传新图像时,所以 /admin/app/sonatamediamedia/create 我总是有这个错误

The "default/0001/01/61fc4b8aa4950c91850a23e5261c8c210613512e.png" file does not exist or is not readable.

这是堆栈跟踪

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)

如果我更改提供程序文件系统选项, 文件系统:sonata.media.filesystem.local 它工作正常!!!

谁能给我一个线索?! 从 2 天起,我就一直在为此而苦苦挣扎...

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...