Ошибка таймаута при загрузке файлов PDF и CSV в приложении Django на сервер o2switch
Я развернул приложение Django на сервере o2switch и пытаюсь загрузить файлы в папку media. Мой код отлично работает для файлов .txt и .xlsx, но не работает для файлов .pdf или .csv. Я получаю ошибку таймаута, и кажется, что запрос даже не доходит до сервера, потому что в журналах ничего не появляется.
Я попытался провести тест с PHP-скриптом на том же домене, и он работает для всех типов файлов. Таким образом, проблема, похоже, исходит либо от приложения Django Rest Framework, либо от конкретной конфигурации на o2switch. Напоминаю, что загрузка работает нормально с файлами .txt, но я получаю таймаут для файлов .pdf и .csv. Есть ли у вас какие-нибудь идеи по поводу того, что может вызвать такое поведение? Это проблема, связанная с Django Rest Framework или с конфигурацией o2switch? и python 3.8.18 Заранее спасибо за помощь
import os
import sys
sys.path.append(os.getcwd())
os.environ['DJANGO_SETTINGS_MODULE'] = 'Back_end_Gaz_elec.settings'
import django.core.handlers.wsgi
from django.core.wsgi import get_wsgi_application
SCRIPT_NAME = os.getcwd()
class PassengerPathInfoFix(object):
def __init__(self, app):
self.app = app
def __call__(self, environ, start_response):
from urllib.parse import unquote
environ['SCRIPT_NAME'] = SCRIPT_NAME
request_uri = unquote(environ['REQUEST_URI'])
script_name = unquote(environ.get('SCRIPT_NAME', ''))
offset = request_uri.startswith(script_name) and len(environ['SCRIPT_NAME']) or 0
environ['PATH_INFO'] = request_uri[offset:].split('?', 1)[0]
return self.app(environ, start_response)
application = get_wsgi_application()
application = PassengerPathInfoFix(application)
Моя конфигурация статических и медиафайлов в settings.py
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
и мой urls.py
urlpatterns = [
path('admin/', admin.site.urls),
path('api/', include('application.urls')),
path('api-dashboard/', include('admin_dashboard.urls')),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)`
`STATIC_URL = '/static/'
Вот некоторые подробности:
Django==4.0.3
django-cleanup==6.0.0
django-cors-headers==3.11.0
django-environ==0.11.2
djangorestframework==3.13.1
djangorestframework-jwt==1.11.0
djangorestframework-simplejwt==5.1.0
# settings.py
DATA_UPLOAD_MAX_MEMORY_SIZE = 10485760 # 10 MB
FILE_UPLOAD_MAX_MEMORY_SIZE = 10485760 # 10 MB