From 4e63771c3baa8319376ce75331d11aa5e50f4f02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20Soko=C5=82owski?= Date: Fri, 20 Jan 2023 09:57:19 +0100 Subject: [PATCH] Expose `buffer_size` in `response.send_file`, adjust default to match the one in `server` --- adafruit_httpserver/response.py | 4 +++- adafruit_httpserver/server.py | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/adafruit_httpserver/response.py b/adafruit_httpserver/response.py index ab3600f..c6cdcea 100644 --- a/adafruit_httpserver/response.py +++ b/adafruit_httpserver/response.py @@ -171,10 +171,12 @@ def send_file( self, filename: str = "index.html", root_path: str = "./", + buffer_size: int = 1024, ) -> None: """ Send response with content of ``filename`` located in ``root_path``. Implicitly calls ``_send_headers`` before sending the file content. + File is send split into ``buffer_size`` parts. Should be called **only once** per response. """ @@ -196,7 +198,7 @@ def send_file( ) with open(root_path + filename, "rb") as file: - while bytes_read := file.read(2048): + while bytes_read := file.read(buffer_size): self._send_bytes(self.request.connection, bytes_read) self._response_already_sent = True diff --git a/adafruit_httpserver/server.py b/adafruit_httpserver/server.py index 0a64541..c3a5aa0 100644 --- a/adafruit_httpserver/server.py +++ b/adafruit_httpserver/server.py @@ -172,6 +172,7 @@ def poll(self): HTTPResponse(request).send_file( filename=request.path, root_path=self.root_path, + buffer_size=self.request_buffer_size, ) else: HTTPResponse(