配置 Django/Wagtail 媒体以使用 S3

Configuring Django/Wagtail media to use S3

我正在使用以下指南:

https://www.caktusgroup.com/blog/2014/11/10/Using-Amazon-S3-to-store-your-Django-sites-static-and-media-files/

在指导您如何 "Configuring Django media to use S3" 的部分。我将其用于 Wagtail。

我不清楚将 "custom_storages.py" 设置放在哪里。我把它放在任何地方似乎都不起作用。我现在又回到了 Whitenoise。

谢谢!

您可以将 custom_storages.py 放在 Python 路径的任何位置。 Django 将尝试使用 STATICFILES_STORAGE 设置的值来查找 class,在示例中为 'custom_storages.StaticStorage'。所以 Django 实际上会 "import custom_storages" 并使用 "custom_storages.StaticStorage" 作为存储 class。只要确保你可以 "import custom_storages" 并且它应该可以工作。

您需要设置 STATICFILES_STORAGE 设置

STATICFILES_STORAGE = 'path/to/custom_storages.StaticStorage'

如果您使用的是鹡鸰(我假设您是这样做的,因为您用它来标记这个问题),您可以将它放在默认的 home/ 目录中并引用它像这样:'home/custom_storages.StaticStorage'

custom_storages.py 的内容在您正在关注的指南中有说明:

# custom_storages.py
from django.conf import settings
from storages.backends.s3boto import S3BotoStorage

class StaticStorage(S3BotoStorage):
    location = settings.STATICFILES_LOCATION

编辑: 我有一个 GitHub 存储库(也是一个 wagtail 项目),我在其中使用此代码,但仅用于我的媒体文件。你可以检查一下here