From 2638a06551f98de2c5a6a7934d394f0847ce1a37 Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Mon, 15 Apr 2024 10:56:41 +0530 Subject: [PATCH] [mob][photos] Enable multiPart upload for internal users --- mobile/lib/utils/file_uploader.dart | 13 +++++++++---- mobile/lib/utils/multipart_upload_util.dart | 5 +++++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/mobile/lib/utils/file_uploader.dart b/mobile/lib/utils/file_uploader.dart index c60ef3e86..a545605e9 100644 --- a/mobile/lib/utils/file_uploader.dart +++ b/mobile/lib/utils/file_uploader.dart @@ -29,6 +29,7 @@ import "package:photos/models/metadata/file_magic.dart"; import 'package:photos/models/upload_url.dart'; import "package:photos/models/user_details.dart"; import 'package:photos/services/collections_service.dart'; +import "package:photos/services/feature_flag_service.dart"; import "package:photos/services/file_magic_service.dart"; import 'package:photos/services/local_sync_service.dart'; import 'package:photos/services/sync_service.dart'; @@ -493,11 +494,15 @@ class FileUploader { final String thumbnailObjectKey = await _putFile(thumbnailUploadURL, encryptedThumbnailFile); - final count = await calculatePartCount( - await encryptedFile.length(), - ); + // Calculate the number of parts for the file. Multiple part upload + // is only enabled for internal users and debug builds till it's battle tested. + final count = FeatureFlagService.instance.isInternalUserOrDebugBuild() + ? await calculatePartCount( + await encryptedFile.length(), + ) + : 1; - String fileObjectKey; + late String fileObjectKey; if (count <= 1) { final fileUploadURL = await _getUploadURL(); diff --git a/mobile/lib/utils/multipart_upload_util.dart b/mobile/lib/utils/multipart_upload_util.dart index 29830fcef..6e0eda8ca 100644 --- a/mobile/lib/utils/multipart_upload_util.dart +++ b/mobile/lib/utils/multipart_upload_util.dart @@ -6,6 +6,7 @@ import "package:dio/dio.dart"; import "package:logging/logging.dart"; import "package:photos/core/constants.dart"; import "package:photos/core/network/network.dart"; +import "package:photos/services/feature_flag_service.dart"; import "package:photos/utils/xml_parser_util.dart"; final _enteDio = NetworkClient.instance.enteDio; @@ -56,6 +57,10 @@ Future calculatePartCount(int fileSize) async { Future getMultipartUploadURLs(int count) async { try { + assert( + FeatureFlagService.instance.isInternalUserOrDebugBuild(), + "Multipart upload should not be enabled for external users.", + ); final response = await _enteDio.get( "/files/multipart-upload-urls", queryParameters: {