OneupFlysystemBundle :如何在开发者之间拥有不同的适配器。和产品
OneupFlysystemBundle : how to have different adapters between dev. and prod
我正在集成 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 很便宜(即使是免费的,你也不会存储很多数据),如果可能的话,你也应该在开发中使用它。
我正在集成 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 很便宜(即使是免费的,你也不会存储很多数据),如果可能的话,你也应该在开发中使用它。