相关疑难解决方法(0)

Django 仅在生产环境中使用私有 S3 存储

我已将 django REST API 设置为在调试模式下使用本地存储,在生产环境中使用 S3 存储。这适用于公共文件,因为我覆盖了DEFAULT_FILE_STORAGE这样的:

if IS_DEBUG:
    DEFAULT_FILE_STORAGE = 'api.storage_backends.PublicMediaStorage'
Run Code Online (Sandbox Code Playgroud)

每个人都会FileField自动使用它。现在我想以同样的方式使用私有 S3 存储,但是因为我必须显式定义存储 ( FileField(storage=PrivateMediaStorage())),所以总是使用 S3 存储。

在调试模式下如何使用本地存储而不是 S3 存储?

PS:我已经考虑过FileField根据 DEBUG 模式将模型更改为使用或不使用显式存储。这并没有完全解决我的问题,因为我的迁移是在 DEBUG 模式下创建的,因此始终包含没有私有存储类的模型。

更新: 我正在寻找一种解决方案,它可以在两种环境中共享相同的迁移,并且仅在运行时延迟实例化实际存储类。就像 djangoDEFAULT_FILE_STORAGE已经处理了一样。

python django amazon-s3 django-storage django-rest-framework

7
推荐指数
2
解决办法
1792
查看次数