From f1a636d01824a8576448cd14309198d86fb42c4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl?= <15849319+abcdan@users.noreply.github.com> Date: Sun, 9 Jun 2024 14:54:44 +0200 Subject: [PATCH] s3 gather statistics --- engines/s3.engine.js | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/engines/s3.engine.js b/engines/s3.engine.js index d1a90b2..f049c7d 100644 --- a/engines/s3.engine.js +++ b/engines/s3.engine.js @@ -57,8 +57,33 @@ const initializeS3Storage = (multerOptions, fileNameLength, s3Config) => { res.end(); }); }; + const gatherStatistics = async () => { + let totalUploads = 0; + let totalSize = 0; - return { writeFile, findFile }; + const listParams = { + Bucket: s3Config.bucketName, + }; + + const listObjects = async (params) => { + const data = await s3.listObjectsV2(params).promise(); + data.Contents.forEach((item) => { + totalUploads++; + totalSize += item.Size; + }); + + if (data.IsTruncated) { + params.ContinuationToken = data.NextContinuationToken; + await listObjects(params); + } + }; + + await listObjects(listParams); + + return { totalUploads, totalSize }; + }; + + return { writeFile, findFile, gatherStatistics }; }; module.exports = initializeS3Storage;