From b054e5a08b4363ed070f23723cc4d7f3ce7674f0 Mon Sep 17 00:00:00 2001 From: Shane Israel Date: Mon, 25 Aug 2025 08:59:54 -0600 Subject: [PATCH] use a more efficient checksum that looks at the file info instead of the file contents --- app/client/package.json | 2 +- app/client/src/components/admin/UploadCard.js | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/client/package.json b/app/client/package.json index 0d2533d6..f9b8c2a3 100644 --- a/app/client/package.json +++ b/app/client/package.json @@ -1,6 +1,6 @@ { "name": "fireshare", - "version": "1.2.27", + "version": "1.2.28", "private": true, "dependencies": { "@emotion/react": "^11.9.0", diff --git a/app/client/src/components/admin/UploadCard.js b/app/client/src/components/admin/UploadCard.js index 77186cbf..454a1b38 100644 --- a/app/client/src/components/admin/UploadCard.js +++ b/app/client/src/components/admin/UploadCard.js @@ -98,7 +98,10 @@ const UploadCard = ({ authenticated, feedView = false, publicUpload = false, fet if (!selectedFile) return; const totalChunks = Math.ceil(selectedFile.size / chunkSize); - const checksum = await crypto.subtle.digest('SHA-256', await selectedFile.arrayBuffer()).then(buf => Array.from(new Uint8Array(buf)).map(b => b.toString(16).padStart(2, '0')).join('')); + + const fileInfo = `${selectedFile.name}-${selectedFile.size}-${selectedFile.lastModified}`; + const checksum = await crypto.subtle.digest('SHA-256', new TextEncoder().encode(fileInfo)) + .then(buf => Array.from(new Uint8Array(buf)).map(b => b.toString(16).padStart(2, '0')).join('')); try { for (let chunkIndex = 0; chunkIndex < totalChunks; chunkIndex++) {