在 o2switch 服务器上的 Django 应用程序中上传 PDF 和 CSV 文件时出现超时错误

问题描述 投票:0回答:1

我在 o2switch 服务器上部署了 Django 应用程序,并尝试将文件上传到我的媒体文件夹。我的代码适用于 .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
django django-rest-framework file-upload
1个回答
0
投票
# settings.py
DATA_UPLOAD_MAX_MEMORY_SIZE = 10485760  # 10 MB
FILE_UPLOAD_MAX_MEMORY_SIZE = 10485760  # 10 MB
© www.soinside.com 2019 - 2024. All rights reserved.