Dont check fs size every chunk, and set buffer size bigger
This commit is contained in:
committed by
Rune Harlyk
parent
485ecb7547
commit
9b8e92ce32
@@ -386,6 +386,10 @@ socket_message_FSUploadStartResponse FileSystemHandler::handleUploadStart(
|
|||||||
return response;
|
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();
|
std::string transferId = generateTransferId();
|
||||||
|
|
||||||
UploadState state;
|
UploadState state;
|
||||||
@@ -433,17 +437,6 @@ void FileSystemHandler::handleUploadData(const socket_message_FSUploadData& req)
|
|||||||
// A more robust implementation would buffer out-of-order chunks
|
// 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
|
// Write chunk data
|
||||||
size_t bytesWritten = state.file.write(req.data.bytes, req.data.size);
|
size_t bytesWritten = state.file.write(req.data.bytes, req.data.size);
|
||||||
if (bytesWritten != req.data.size) {
|
if (bytesWritten != req.data.size) {
|
||||||
|
|||||||
Reference in New Issue
Block a user