我正在集成OneupflySystemBundle,我想知道如何在"开发PC"上使用local
适配器,在生产服务器上使用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"
但是我不喜欢这个解决方案,有人有更好的主意吗?
您的最后一个解决方案与Symfony本身允许选择DBMS驱动程序使用或配置缓存后端的方式非常相似。看起来还可以。
与执行环境相关的设置可以在app/config/parameters.yml
中配置(将choosen_adapter
参数放入其中(,其原因是。
但是,这通常是一种不好的做法,导致在开发和生产中使用不同的环境的怪异行为。某些错误可能仅在生产中出现,因为使用S3而不是本地FS。
。您应该尝试在开发环境上尽可能地与生产环境一起工作。S3很便宜(即使您没有存储很多数据(,如果可能的话,您也应该在开发中使用它。