diff --git a/src/services/upload/metadataService.ts b/src/services/upload/metadataService.ts index 1be0c006a..e408b95d7 100644 --- a/src/services/upload/metadataService.ts +++ b/src/services/upload/metadataService.ts @@ -28,12 +28,12 @@ const NULL_PARSED_METADATA_JSON: ParsedMetaDataJSON = { }; export async function extractMetadata( - reader: FileReader, + worker, receivedFile: globalThis.File, fileType: FILE_TYPE ) { const { location, creationTime } = await getExifData( - reader, + worker, receivedFile, fileType ); diff --git a/src/services/upload/readFileService.ts b/src/services/upload/readFileService.ts index de35767f2..22fc8c6c7 100644 --- a/src/services/upload/readFileService.ts +++ b/src/services/upload/readFileService.ts @@ -8,25 +8,17 @@ const TYPE_IMAGE = 'image'; const EDITED_FILE_SUFFIX = '-edited'; const CHUNK_SIZE_FOR_TYPE_DETECTION = 4100; -export async function getFileData( - worker, - reader: FileReader, - file: globalThis.File -) { +export async function getFileData(worker, file: globalThis.File) { if (file.size > MULTIPART_PART_SIZE) { - return getFileStream(worker, reader, file, FILE_READER_CHUNK_SIZE); + return getFileStream(worker, file, FILE_READER_CHUNK_SIZE); } else { return await worker.getUint8ArrayView(file); } } -export async function getFileType( - worker, - reader: FileReader, - receivedFile: globalThis.File -) { +export async function getFileType(worker, receivedFile: globalThis.File) { let fileType: FILE_TYPE; - const mimeType = await getMimeType(worker, reader, receivedFile); + const mimeType = await getMimeType(worker, receivedFile); const majorType = mimeType?.split('/')[0].toLowerCase(); switch (majorType) { case TYPE_IMAGE: @@ -57,33 +49,19 @@ export function getFileOriginalName(file: globalThis.File) { return originalName; } -async function getMimeType(worker, reader: FileReader, file: globalThis.File) { +async function getMimeType(worker, file: globalThis.File) { const fileChunkBlob = file.slice(0, CHUNK_SIZE_FOR_TYPE_DETECTION); - return getMimeTypeFromBlob(worker, reader, fileChunkBlob); + return getMimeTypeFromBlob(worker, fileChunkBlob); } -export async function getMimeTypeFromBlob( - worker, - reader: FileReader, - fileBlob: Blob -) { +export async function getMimeTypeFromBlob(worker, fileBlob: Blob) { const initialFiledata = await worker.getUint8ArrayView(fileBlob); const result = await FileType.fromBuffer(initialFiledata); return result?.mime; } -function getFileStream( - worker, - reader: FileReader, - file: globalThis.File, - chunkSize: number -) { - const fileChunkReader = fileChunkReaderMaker( - worker, - reader, - file, - chunkSize - ); +function getFileStream(worker, file: globalThis.File, chunkSize: number) { + const fileChunkReader = fileChunkReaderMaker(worker, file, chunkSize); const stream = new ReadableStream({ async pull(controller: ReadableStreamDefaultController) { @@ -104,7 +82,6 @@ function getFileStream( async function* fileChunkReaderMaker( worker, - reader: FileReader, file: globalThis.File, chunkSize: number ) { diff --git a/src/services/upload/thumbnailService.ts b/src/services/upload/thumbnailService.ts index 110ef135c..07777a74d 100644 --- a/src/services/upload/thumbnailService.ts +++ b/src/services/upload/thumbnailService.ts @@ -11,7 +11,6 @@ const WAIT_TIME_THUMBNAIL_GENERATION = 10 * 1000; export async function generateThumbnail( worker, - reader: FileReader, file: globalThis.File, fileType: FILE_TYPE, isHEIC: boolean diff --git a/src/services/upload/uploadManager.ts b/src/services/upload/uploadManager.ts index da1546314..d111aa757 100644 --- a/src/services/upload/uploadManager.ts +++ b/src/services/upload/uploadManager.ts @@ -157,15 +157,14 @@ class UploadManager { this.cryptoWorkers[i] = cryptoWorker; uploadProcesses.push( this.uploadNextFileInQueue( - await new this.cryptoWorkers[i].comlink(), - new FileReader() + await new this.cryptoWorkers[i].comlink() ) ); } await Promise.all(uploadProcesses); } - private async uploadNextFileInQueue(worker: any, fileReader: FileReader) { + private async uploadNextFileInQueue(worker: any) { while (this.filesToBeUploaded.length > 0) { const fileWithCollection = this.filesToBeUploaded.pop(); const existingFilesInCollection = @@ -178,7 +177,6 @@ class UploadManager { fileWithCollection.collection = collection; const { fileUploadResult, file } = await uploader( worker, - fileReader, existingFilesInCollection, fileWithCollection ); diff --git a/src/services/upload/uploadService.ts b/src/services/upload/uploadService.ts index 431a6db77..f34223db9 100644 --- a/src/services/upload/uploadService.ts +++ b/src/services/upload/uploadService.ts @@ -100,15 +100,10 @@ class UploadService { async readFile( worker, - reader: FileReader, rawFile: globalThis.File, collection: Collection ): Promise { - const { fileType, mimeType } = await getFileType( - worker, - reader, - rawFile - ); + const { fileType, mimeType } = await getFileType(worker, rawFile); if (fileType === FILE_TYPE.OTHERS) { throw Error(CustomError.UNSUPPORTED_FILE_FORMAT); } @@ -117,7 +112,6 @@ class UploadService { const { thumbnail, hasStaticThumbnail } = await generateThumbnail( worker, - reader, rawFile, fileType, isHEIC @@ -129,7 +123,7 @@ class UploadService { getMetadataMapKey(collection.id, originalName) ) ?? {}; const extractedMetadata: MetadataObject = await extractMetadata( - reader, + worker, rawFile, fileType ); @@ -143,7 +137,7 @@ class UploadService { extractedMetadata[key] = value; } - const filedata = await getFileData(worker, reader, rawFile); + const filedata = await getFileData(worker, rawFile); return { filedata, diff --git a/src/services/upload/uploader.ts b/src/services/upload/uploader.ts index fd0d872f2..80ab62716 100644 --- a/src/services/upload/uploader.ts +++ b/src/services/upload/uploader.ts @@ -22,7 +22,6 @@ interface UploadResponse { } export default async function uploader( worker: any, - reader: FileReader, existingFilesInCollection: File[], fileWithCollection: FileWithCollection ): Promise { @@ -33,12 +32,7 @@ export default async function uploader( let file: FileInMemory = null; let encryptedFile: EncryptedFile = null; try { - file = await UploadService.readFile( - worker, - reader, - rawFile, - collection - ); + file = await UploadService.readFile(worker, rawFile, collection); if (fileAlreadyInCollection(existingFilesInCollection, file)) { UIService.setFileProgress(rawFile.name, FileUploadResults.SKIPPED);