From 36c141de0eadbba9cab637be13558d0b491de22f Mon Sep 17 00:00:00 2001 From: Abhinav Date: Tue, 31 May 2022 13:01:54 +0530 Subject: [PATCH] add USE_CF_PROXY flag --- src/constants/upload/index.ts | 2 + src/services/migrateThumbnailService.ts | 21 +++++++--- src/services/upload/multiPartUploadService.ts | 27 +++++++++---- src/services/upload/uploadService.ts | 38 ++++++++++++++----- 4 files changed, 65 insertions(+), 23 deletions(-) diff --git a/src/constants/upload/index.ts b/src/constants/upload/index.ts index ae108f8a2..f2bf84b90 100644 --- a/src/constants/upload/index.ts +++ b/src/constants/upload/index.ts @@ -52,3 +52,5 @@ export const NULL_EXTRACTED_METADATA: ParsedExtractedMetadata = { }; export const A_SEC_IN_MICROSECONDS = 1e6; + +export const USE_CF_PROXY = false; diff --git a/src/services/migrateThumbnailService.ts b/src/services/migrateThumbnailService.ts index 421b76b24..90a86b71d 100644 --- a/src/services/migrateThumbnailService.ts +++ b/src/services/migrateThumbnailService.ts @@ -12,6 +12,7 @@ import { getFileType } from 'services/typeDetectionService'; import { getLocalTrash, getTrashedFiles } from './trashService'; import { EncryptionResult, UploadURL } from 'types/upload'; import { fileAttribute } from 'types/file'; +import { USE_CF_PROXY } from 'constants/upload'; const ENDPOINT = getEndpoint(); const REPLACE_THUMBNAIL_THRESHOLD = 500 * 1024; // 500KB @@ -108,12 +109,20 @@ export async function uploadThumbnail( ): Promise { const { file: encryptedThumbnail }: EncryptionResult = await worker.encryptThumbnail(updatedThumbnail, fileKey); - - const thumbnailObjectKey = await uploadHttpClient.putFileV2( - uploadURL, - encryptedThumbnail.encryptedData as Uint8Array, - () => {} - ); + let thumbnailObjectKey: string = null; + if (USE_CF_PROXY) { + thumbnailObjectKey = await uploadHttpClient.putFileV2( + uploadURL, + encryptedThumbnail.encryptedData as Uint8Array, + () => {} + ); + } else { + thumbnailObjectKey = await uploadHttpClient.putFile( + uploadURL, + encryptedThumbnail.encryptedData as Uint8Array, + () => {} + ); + } return { objectKey: thumbnailObjectKey, decryptionHeader: encryptedThumbnail.decryptionHeader, diff --git a/src/services/upload/multiPartUploadService.ts b/src/services/upload/multiPartUploadService.ts index d6521bc2c..4b7070398 100644 --- a/src/services/upload/multiPartUploadService.ts +++ b/src/services/upload/multiPartUploadService.ts @@ -1,6 +1,7 @@ import { FILE_CHUNKS_COMBINED_FOR_A_UPLOAD_PART, RANDOM_PERCENTAGE_PROGRESS_FOR_PUT, + USE_CF_PROXY, } from 'constants/upload'; import UIService from './uiService'; import UploadHttpClient from './uploadHttpClient'; @@ -56,12 +57,20 @@ export async function uploadStreamInParts( percentPerPart, index ); - - const eTag = await UploadHttpClient.putFilePartV2( - fileUploadURL, - uploadChunk, - progressTracker - ); + let eTag = null; + if (USE_CF_PROXY) { + eTag = await UploadHttpClient.putFilePartV2( + fileUploadURL, + uploadChunk, + progressTracker + ); + } else { + eTag = await UploadHttpClient.putFilePart( + fileUploadURL, + uploadChunk, + progressTracker + ); + } partEtags.push({ PartNumber: index + 1, ETag: eTag }); } const { done } = await streamReader.read(); @@ -103,5 +112,9 @@ async function completeMultipartUpload( { CompleteMultipartUpload: { Part: partEtags } }, options ); - await UploadHttpClient.completeMultipartUploadV2(completeURL, body); + if (USE_CF_PROXY) { + await UploadHttpClient.completeMultipartUploadV2(completeURL, body); + } else { + await UploadHttpClient.completeMultipartUpload(completeURL, body); + } } diff --git a/src/services/upload/uploadService.ts b/src/services/upload/uploadService.ts index c27b8b0fc..3234dd951 100644 --- a/src/services/upload/uploadService.ts +++ b/src/services/upload/uploadService.ts @@ -32,6 +32,7 @@ import { import { encryptFile, getFileSize, readFile } from './fileService'; import { uploadStreamUsingMultipart } from './multiPartUploadService'; import UIService from './uiService'; +import { USE_CF_PROXY } from 'constants/upload'; class UploadService { private uploadURLs: UploadURL[] = []; @@ -141,18 +142,35 @@ class UploadService { file.localID ); const fileUploadURL = await this.getUploadURL(); - fileObjectKey = await UploadHttpClient.putFileV2( - fileUploadURL, - file.file.encryptedData, - progressTracker - ); + if (USE_CF_PROXY) { + fileObjectKey = await UploadHttpClient.putFileV2( + fileUploadURL, + file.file.encryptedData, + progressTracker + ); + } else { + fileObjectKey = await UploadHttpClient.putFile( + fileUploadURL, + file.file.encryptedData, + progressTracker + ); + } } const thumbnailUploadURL = await this.getUploadURL(); - const thumbnailObjectKey = await UploadHttpClient.putFileV2( - thumbnailUploadURL, - file.thumbnail.encryptedData as Uint8Array, - null - ); + let thumbnailObjectKey: string = null; + if (USE_CF_PROXY) { + thumbnailObjectKey = await UploadHttpClient.putFileV2( + thumbnailUploadURL, + file.thumbnail.encryptedData as Uint8Array, + null + ); + } else { + thumbnailObjectKey = await UploadHttpClient.putFile( + thumbnailUploadURL, + file.thumbnail.encryptedData as Uint8Array, + null + ); + } const backupedFile: BackupedFile = { file: {