1

我正在集成 OneupFlysystemBundle,我想知道如何local在我的开发 PC 和awss3v3生产服务器上使用适配器。

我已经这样做了,但没有成功(它总是使用本地):

oneup_flysystem:
    adapters:
        default_adapter:
            local:
                directory: %flysystem.local_adapter.directory%
            awss3v3:
              client: flysystem_clients.s3
              bucket: "%flysystem.s3_client.foo.bucketName%"
              prefix: "foo/"


    filesystems:
        default:
            adapter: default_adapter

我认为我可以使用:

oneup_flysystem:
    adapters:
        default_local_adapter:
            local:
                directory: %flysystem.local_adapter.directory%
        default_s3_adapter:
            awss3v3:
              client: flysystem_clients.s3
              bucket: "%flysystem.s3_client.foo.bucketName%"
              prefix: "foo/"


    filesystems:
        default:
            adapter: "%choosen_adapter%" # choosen_adapter value beeing either "default_local_adapter" or "default_s3_adapter"

但我不喜欢这个解决方案,有人有更好的主意吗?

4

1 回答 1

2

您的最后一个解决方案与 Symfony 本身允许选择要使用的 DBMS 驱动程序或配置缓存后端的方式非常相似。看起来不错。

可以在里面配置执行环境相关的设置app/config/parameters.yml(把choosen_adapter参数放进去),它的存在的原因。

但是,在开发和生产中使用不同的环境通常是一种不好的做法,会导致奇怪的行为。一些错误可能只出现在生产中,因为使用 S3 而不是本地 FS。

您应该尝试在尽可能接近生产环境的开发环境中工作。S3 很便宜(即使是免费的,您也不会存储大量数据),如果可能的话,您也应该在 dev.xml 中使用它。

于 2017-05-31T22:21:00.030 回答