Загрузка запросов на медиасервер в django - PullRequest
0 голосов
/ 03 мая 2020

У меня есть этот модуль, который я импортировал в 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)

Это представление, которое вызывает скачать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...