From 69cf5d32b475b19805e661cc60eb5c9adc4b0d0b Mon Sep 17 00:00:00 2001 From: robbond Date: Thu, 2 Apr 2026 15:06:34 +0100 Subject: [PATCH] batch uploaded files in blocks of 10 at a time --- pages/api/file/uploadsinglefile.js | 32 +++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/pages/api/file/uploadsinglefile.js b/pages/api/file/uploadsinglefile.js index bef3de5a..fccaa7ee 100644 --- a/pages/api/file/uploadsinglefile.js +++ b/pages/api/file/uploadsinglefile.js @@ -10,6 +10,7 @@ import fs from "fs"; import path from "path"; const FILENAME_ALLOWED = /^[A-Za-z0-9 ._\-:()—']+$/; +const MAX_FILES_PER_UPLOAD_BATCH = 10; function validateFilenameServer(originalFilename) { const name = path.basename(originalFilename || ""); @@ -136,11 +137,32 @@ ApiProxy.post(async (req, res) => { } try { - const data = await uploadSingleFile( - allowedFilesFormData, - containerID, - casefolderID - ); + const allowedFileEntries = Object.entries(allowedFilesFormData); + const data = []; + + for ( + let index = 0; + index < allowedFileEntries.length; + index += MAX_FILES_PER_UPLOAD_BATCH + ) { + const fileChunk = Object.fromEntries( + allowedFileEntries.slice( + index, + index + MAX_FILES_PER_UPLOAD_BATCH + ) + ); + + const uploadChunkResult = await uploadSingleFile( + fileChunk, + containerID, + casefolderID + ); + + if (Array.isArray(uploadChunkResult)) { + data.push(...uploadChunkResult); + } + } + return respondSuccess(res, { data, invalidFiles }); } catch (error) { consoleLogger(error);