файлов.
Сделал на HTTPServer.
В BaseHTTPRequestHandler в do_GET есть такой код:
file_path = curdir + sep + file_name
f = open(file_path, 'rb')
self.send_response(200)
self.send_header('Content-Type', 'application/octet-stream')
self.send_header('Content-Length', path.getsize(file_name))
self.send_header('Content-Disposition', 'attachment; filename="'+file_name+'"')
self.end_headers()
self.wfile.write(f.read())
f.close()
проверил на маленьком файле (2 мб) - норм работает.
Попробовал отдать 50 мб - браузер пишет, что соединение оборвано.
Куда копать? Или может есть альтернатива HttpServer? мне надо по расписанию запустить сервак, что бы клиент скачал 2 файла, а потом вырубить сервак, т.е. надо отловить ГЕТ-запрос определённый и выключить сервер.
а почему нельзя было взять nginx?
не надо open и read. Юзай хотя бы send_file
Обсуждают сегодня