Статические файлы Django не загружаются с AWS S3 после запуска collectstatic

Я работаю над проектом Django, в котором хочу хранить и обслуживать статические файлы с помощью AWS S3. Я выполнил обычные шаги по настройке и установил в файле settings.py использование S3 для статических файлов. Однако после запуска collectstatic мои статические файлы не загружаются, и я не могу получить к ним доступ через ведро S3.

Вот краткое описание того, что я сделал на данный момент:

Конфигурация в settings.py:

# AWS Credentials
AWS_ACCESS_KEY_ID = 'my-access-key'
AWS_SECRET_ACCESS_KEY = 'my-secret-key'
AWS_STORAGE_BUCKET_NAME = 'cats-gallery-amanda'

# S3 Static File Settings
AWS_S3_CUSTOM_DOMAIN = f'{AWS_STORAGE_BUCKET_NAME}.s3.amazonaws.com'
AWS_DEFAULT_ACL = 'public-read'
AWS_LOCATION = 'static'
AWS_QUERYSTRING_AUTH = False
AWS_S3_OBJECT_PARAMETERS = {
    'CacheControl': 'max-age=86400',
}

# Static Files Settings
STATIC_URL = f'https://{AWS_S3_CUSTOM_DOMAIN}/static/'
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'

# Directories
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'setup/static'),
]

Что я пробовал:

  1. Запуск collectstatic:

Команда: python manage.py collectstatic Вывод: 0 статических файлов скопировано в 'static/', 176 не изменены.

  1. S3 Bucket Permissions:

Я установил политику ведра, чтобы разрешить публичный доступ:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "PublicReadGetObject",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::cats-gallery-amanda/static/*"
    }
  ]
}

  1. Проверка файлов в S3:

После запуска collectstatic в ведре S3 нет файлов в разделе static/.

  1. Попытки решения:
  • Убедитесь, что django-storages и boto3 установлены.
  • Перепроверили учетные данные AWS.
  • Убедитесь, что ведро S3 находится в открытом доступе.
  • Попробовали вручную загрузить файлы в S3, и они работают нормально.

Что я упускаю?

Я не могу понять, почему collectstatic не загружает статические файлы в ведро S3. Нужно ли мне настроить что-то еще? Как заставить статические файлы правильно загружаться и обслуживаться из S3?

Любые советы или рекомендации по устранению неполадок будут оценены по достоинству!

Я заменил

STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'

с

STORAGES = {
   "default": {
        "BACKEND" : "storages.backends.s3boto3.S3StaticStorage",
    },

    "staticfiles":  {
        "BACKEND" : "storages.backends.s3boto3.S3StaticStorage",
    },
}

и все работало нормально.

Вернуться на верх