У меня есть этот модуль, который я импортировал в django. Он использует запрос на скачивание файлов с указанных c URL. Это хорошо работает, учитывая, что хост - это моя система. Если я перейду на сервер, это будет означать, что файлы будут загружены на сервер, а это неэффективно или не очень хорошо. Как я могу использовать этот модуль для загрузки и автоматической загрузки на медиа-сервер или, что еще лучше, загрузки непосредственно на медиа-сервер и оттуда, предоставить его пользователю для загрузки. Это код скрипта
def download_course_file(self, course):
username = self._login_data["username"]
p = Path(f"{username}-{course}.txt").exists()
if not p:
self.get_download_links(course)
statime = time.time()
with open(f"{username}-{course}.txt", "r") as course_link:
data = course_link.read().splitlines(False)[::2]
p.map(self.download, data)
def download(self, url):
response = self._is_downloadable(url)
if response:
name = response.headers.get('content-disposition')
fname = re.findall('filename=(.+)', name)
if len(fname) != 0:
filename = fname[0]
filename = filename.replace("\"", "")
print(filename)
else :
filename = "Lecture note"
with open(filename, 'wb') as files:
for chunk in response.iter_content(100000):
files.write(chunk)
Я опустил логи self._is_downloadable () c, поскольку он здесь не применяется
def download_course(request, id):
course = course = get_object_or_404(Course, id=id)
course_name = (course.course_name)[:6]
person, error = create_session(request)
if "invalid" in error:
data = {"error":error}
return JsonResponse(data)
person.download_course_file(course_name)
data = {"success":"Your notes are being downloaded"}
return JsonResponse(data)
Это представление, которое вызывает скачать