From 5c9ef5c6fd1579e644a2e678409d2edb2de4629e Mon Sep 17 00:00:00 2001 From: tiefseetauchner Date: Thu, 15 Aug 2024 20:02:11 +0200 Subject: [PATCH] - send only one request for checkBulkUpload --- cli/src/commands/asset.ts | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/cli/src/commands/asset.ts b/cli/src/commands/asset.ts index 0416551bf4ba0..084db8a8bd34b 100644 --- a/cli/src/commands/asset.ts +++ b/cli/src/commands/asset.ts @@ -97,22 +97,14 @@ export const checkForDuplicates = async (files: string[], { concurrency, skipHas progressBar.start(files.length, 0); - const newFiles: string[] = []; - const duplicates: Asset[] = []; + const results: { id: string; checksum: string }[] = []; const queue = new Queue( async (filepath: string) => { - const dto = [{ id: filepath, checksum: await sha1(filepath) }]; - const response = await checkBulkUpload({ assetBulkUploadCheckDto: { assets: dto } }); - const results = response.results as AssetBulkUploadCheckResults; - for (const { id: filepath, assetId, action } of results) { - if (action === Action.Accept) { - newFiles.push(filepath); - } else { - // rejects are always duplicates - duplicates.push({ id: assetId as string, filepath }); - } - } + const dto = { id: filepath, checksum: await sha1(filepath) }; + + results.push(dto); + progressBar.increment(); return results; }, @@ -127,6 +119,19 @@ export const checkForDuplicates = async (files: string[], { concurrency, skipHas await queue.drained(); + const newFiles: string[] = []; + const duplicates: Asset[] = []; + + const response = await checkBulkUpload({ assetBulkUploadCheckDto: { assets: results } }); + for (const { id: filepath, assetId, action } of response.results) { + if (action === Action.Accept) { + newFiles.push(filepath); + } else { + // rejects are always duplicates + duplicates.push({ id: assetId as string, filepath }); + } + } + progressBar.stop(); console.log(`Found ${newFiles.length} new files and ${duplicates.length} duplicate${s(duplicates.length)}`);