Bläddra i källkod

Merge pull request #571 from ente-io/revert-to-non-worker-uploads

disable cf proxied upload
Abhinav Kumar 3 år sedan
förälder
incheckning
eb65de290a

+ 2 - 0
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;

+ 15 - 6
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<fileAttribute> {
     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,

+ 20 - 7
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);
+    }
 }

+ 28 - 10
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: {