API Django для загрузки занимает много времени для загрузки файлов
Я работаю над django rest api для загрузки 3 файлов и сохранения их на диск. Файлы имеют размер [file.svo, file.db3 and file.yaml]
. Код ниже работает хорошо и быстро, когда я тестирую его локально. Однако, когда я помещаю его на сервер, загрузка файлов занимает очень много времени. Когда я закомментировал загрузку и сохранил часть file.svo
из кода, загрузка проходит очень быстро.
Размер файла svo варьируется от 70mb до 500mb, .db3 файлы 10mb или меньше. yaml файл будет меньше 1mb
# in built libraries
import os
from time import sleep
from pathlib import Path
# external libraries
import requests
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 a directory
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 "db3_file" in request.FILES:
db3_file = self.request.FILES["db3_file"]
else:
return JsonResponse({"error":"KeyError [db3_file]"})
if "yaml_file" in request.FILES:
yaml_file = self.request.FILES["yaml_file"]
else:
return JsonResponse({"error":"KeyError [yaml_file]"})
if "svo_file" in request.FILES:
svo_file = self.request.FILES["svo_file"]
else:
return JsonResponse({"error":"KeyError [svo_file]"})
# make directory if it doesn't exit
Path(os.path.join(USER_DIR,
str(integer_key),
str(timestamp),
'chdir')
).mkdir(parents=True,exist_ok=True)
# define paths
svo_folder = os.path.join(USER_DIR,str(integer_key),str(timestamp))
yaml_db3_folder = os.path.join(ride_folder,'chdir')
# saving rosbag
save_db3 = FileSystemStorage(location=yaml_db3_folder)
save_db3.save(db3_file.name, db3_file)
# saving metadata
save_yaml = FileSystemStorage(location=yaml_db3_folder)
save_yaml.save(yaml_file.name, yaml_file)
# saving zed_svo
save_svo = FileSystemStorage(location=svo_folder)
save_svo.save(svo_file.name, svo_file)
return JsonResponse({"message":"uploaded and saved successful"})
В чем может быть проблема и как я могу ее решить. Пожалуйста, помогите.