Django api для загрузки очень медленный
Мой django api очень медленный при загрузке файлов на сервер, но очень быстрый при использовании его на localhost. api должен получать файлы и сохранять их на диск.
Я ожидаю загруженные файлы размером от 70mb до примерно 600mb и сохраняю их в хранилище. Файлы представляют собой бинарные файлы с расширением .svo, созданные камерой stereolabs zed. Запуск этой программы на localhost происходит очень быстро, но когда я развертываю ее на сервере, она становится невероятно медленной. Скорость моего интернета составляет около 50 мбит/с, а тестовый файл, который я использую, имеет размер всего 69 мб. Загрузка файла занимает более 24 минут, что неприемлемо.
В чем может быть проблема, почему загрузка на сервер происходит так медленно.
Это мой views.py
запрос на создание каталога и его сохранение
import os
import pathlib
# external libraries
from django.http import JsonResponse
from rest_framework.views import APIView
from django.core.files.storage import FileSystemStorage
# environment variables
from keys import USER_DIR # this is just a directory from .env
class SaveRosBag(APIView):
def post(self, request, *args, **kwargs):
# integer_key & timestamp
integer_key = self.kwargs['integer_key']
timestamp = self.kwargs['timestamp']
# required files
if "zed_svo" in self.request.FILES:
zed_svo = self.request.FILES["zed_svo"]
else:
return JsonResponse({"error":"KeyError [zed_svo]"})
pathlib.Path(os.path.join(USER_DIR,str(integer_key),str(timestamp))).mkdir(parents=True,exist_ok=True)
ride_folder = os.path.join(USER_DIR,str(integer_key),str(timestamp))
save_zed_svo = FileSystemStorage(location=ride_folder)
save_zed_svo.save(zed_svo.name, zed_svo)
return JsonResponse({"message":"file uploaded and saved successful"})
это urls.py
from django.urls import path
from myAPI.views import SaveFile
urlpatterns = [
path('savefile/<int:integer_key>/<int:timestamp>', SaveFile.as_view(), name='Save File')
]
другой urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('jetson/', include('myAPI.urls')),
]