From 9b8e92ce3232a47be990ee79c872e738cb075bd7 Mon Sep 17 00:00:00 2001 From: Niklas Jensen Date: Sat, 17 Jan 2026 22:12:40 +0100 Subject: [PATCH] Dont check fs size every chunk, and set buffer size bigger --- esp32/src/filesystem_ws.cpp | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/esp32/src/filesystem_ws.cpp b/esp32/src/filesystem_ws.cpp index c37b368..fc41653 100644 --- a/esp32/src/filesystem_ws.cpp +++ b/esp32/src/filesystem_ws.cpp @@ -386,6 +386,10 @@ socket_message_FSUploadStartResponse FileSystemHandler::handleUploadStart( return response; } + // Set file buffer size large, so we use ram to write to - and only flush when we need it (TODO: currently it is periodical) + // Set buffer size so 1 mb (static) TODO: Check that there is enough ram to do this + file.setBufferSize(1000000); + std::string transferId = generateTransferId(); UploadState state; @@ -433,17 +437,6 @@ void FileSystemHandler::handleUploadData(const socket_message_FSUploadData& req) // A more robust implementation would buffer out-of-order chunks } - // Check available space before writing - size_t fs_total = 0, fs_used = 0; - esp_littlefs_info("spiffs", &fs_total, &fs_used); - size_t freeSpace = fs_total - fs_used; - if (freeSpace < req.data.size + 4096) { - state.hasError = true; - state.errorMessage = "Filesystem full"; - finalizeUpload(transferId, false, state.errorMessage); - return; - } - // Write chunk data size_t bytesWritten = state.file.write(req.data.bytes, req.data.size); if (bytesWritten != req.data.size) {