From 3ecb6b8482186f0b7e9b7fddcc1ca32609e6c468 Mon Sep 17 00:00:00 2001 From: Abhinav Date: Tue, 17 May 2022 22:58:32 +0530 Subject: [PATCH] move decryption of file to postUpload task and log uploaded file --- src/services/upload/uploadManager.ts | 30 ++++++++++++++++++++-------- src/services/upload/uploader.ts | 6 ++---- 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/src/services/upload/uploadManager.ts b/src/services/upload/uploadManager.ts index 69346fee6..a069acd39 100644 --- a/src/services/upload/uploadManager.ts +++ b/src/services/upload/uploadManager.ts @@ -5,6 +5,7 @@ import { sortFilesIntoCollections, sortFiles, preservePhotoswipeProps, + decryptFile, } from 'utils/file'; import { logError } from 'utils/sentry'; import { getMetadataJSONMapKey, parseMetadataJSON } from './metadataService'; @@ -310,7 +311,7 @@ class UploadManager { this.existingFilesCollectionWise.get(collectionID) ?? []; const collection = this.collections.get(collectionID); - const { fileUploadResult, file } = await uploader( + const { fileUploadResult, uploadedFile } = await uploader( worker, reader, existingFilesInCollection, @@ -324,7 +325,7 @@ class UploadManager { UploadService.reducePendingUploadCount(); await this.postUploadTask( fileUploadResult, - file, + uploadedFile, fileWithCollection ); } @@ -332,21 +333,34 @@ class UploadManager { async postUploadTask( fileUploadResult: FileUploadResults, - file: EnteFile, + uploadedFile: EnteFile, fileWithCollection: FileWithCollection ) { try { + logUploadInfo(`uploadedFile ${JSON.stringify(uploadedFile)}`); + if (fileUploadResult === FileUploadResults.UPLOADED) { - this.existingFiles.push(file); + const decryptedFile = await decryptFile( + uploadedFile, + fileWithCollection.collection.key + ); + this.existingFiles.push(decryptedFile); this.existingFiles = sortFiles(this.existingFiles); await setLocalFiles(this.existingFiles); this.setFiles(preservePhotoswipeProps(this.existingFiles)); - if (!this.existingFilesCollectionWise.has(file.collectionID)) { - this.existingFilesCollectionWise.set(file.collectionID, []); + if ( + !this.existingFilesCollectionWise.has( + decryptedFile.collectionID + ) + ) { + this.existingFilesCollectionWise.set( + decryptedFile.collectionID, + [] + ); } this.existingFilesCollectionWise - .get(file.collectionID) - .push(file); + .get(decryptedFile.collectionID) + .push(decryptedFile); } if ( fileUploadResult === FileUploadResults.FAILED || diff --git a/src/services/upload/uploader.ts b/src/services/upload/uploader.ts index eab2500ba..051cad2c0 100644 --- a/src/services/upload/uploader.ts +++ b/src/services/upload/uploader.ts @@ -1,6 +1,5 @@ import { EnteFile } from 'types/file'; import { handleUploadError, CustomError } from 'utils/error'; -import { decryptFile } from 'utils/file'; import { logError } from 'utils/sentry'; import { fileAlreadyInCollection, @@ -23,7 +22,7 @@ import isElectron from 'is-electron'; interface UploadResponse { fileUploadResult: FileUploadResults; - file?: EnteFile; + uploadedFile?: EnteFile; } export default async function uploader( worker: any, @@ -111,14 +110,13 @@ export default async function uploader( logUploadInfo(`uploadFile ${fileNameSize}`); const uploadedFile = await UploadHttpClient.uploadFile(uploadFile); - const decryptedFile = await decryptFile(uploadedFile, collection.key); UIService.increaseFileUploaded(); logUploadInfo(`${fileNameSize} successfully uploaded`); return { fileUploadResult: FileUploadResults.UPLOADED, - file: decryptedFile, + uploadedFile: uploadedFile, }; } catch (e) { logUploadInfo(