Статические файлы Django не загружены должным образом в Digitalocean Spaces с использованием S3Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Статические файлы Django не загружены должным образом в Digitalocean Spaces с использованием S3

Сообщение Anonymous »

Я работаю над проектом django версии 5.1 и, как всегда, использую пространства digitalocean для своих статических и медиафайлов.
Вот конфигурация по умолчанию, которую я всегда использую:

Код: Выделить всё

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# Our apps
...,
...,
...,
...,
# Third party apps
'storages',

]

# DigitalOcean Spaces Configuration
AWS_ACCESS_KEY_ID = os.getenv('DO_SPACE_ACCESS_KEY_ID')
AWS_SECRET_ACCESS_KEY = os.getenv('DO_SPACE_SECRET_ACCESS_KEY')
AWS_STORAGE_BUCKET_NAME = os.getenv('DO_SPACE_BUCKET_NAME')
AWS_S3_ENDPOINT_URL = f"https://{os.getenv('DO_SPACE_BUCKET_NAME')}.{os.getenv('DO_SPACE_REGION')}.digitaloceanspaces.com"
AWS_S3_OBJECT_PARAMETERS = {
'CacheControl': 'max-age=86400',  # Cache static files for 1 day
}

# Static and Media Files Settings
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'

# Static and Media URL
STATIC_URL = f"{AWS_S3_ENDPOINT_URL}/static/"
MEDIA_URL = f"{AWS_S3_ENDPOINT_URL}/media/"
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')

# Optional configurations to prevent overwrite of files with the same name
AWS_S3_FILE_OVERWRITE = False
AWS_DEFAULT_ACL = None
Но на этот раз у меня возникли проблемы.
Обычно я не определяю STATIC_ROOT, поскольку использую Boto3, но теперь это выдает мне эту ошибку, если я не определяю ее при запуске Collectstatic:

Код: Выделить всё

django.core.exceptions.ImproperlyConfigured:
You're using the staticfiles app without having set the STATIC_ROOT setting to a filesystem path.
Но когда я его включаю, он собирает статические файлы в определенной мной папке staticfiles, а не загружает их в пространства digitalocean.
Я этого не делаю. знаю, есть ли изменения в Django 5, но я попробовал протестировать загрузку S3, перейдя в оболочку django:

Код: Выделить всё

from storages.backends.s3boto3 import S3Boto3Storage
from django.core.files.base import ContentFile
storage.save('testfile.txt', ContentFile('This is a test file for DigitalOcean Spaces'))
И этот файл хорошо загружен в мою корзину.
[img]https:// i.sstatic.net/27QgmaM6.png[/img]

В чем проблема? Есть ли у кого-нибудь такой случай в последней версии Django?
PS: Я использую Digitalocean для базы данных и пространств, а также Railway.app для развертывания приложения.

Подробнее здесь: https://stackoverflow.com/questions/791 ... s-using-s3
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»