Selaa lähdekoodia

Merge branch 'main' into mobile-resumable

Neeraj Gupta 1 vuosi sitten
vanhempi
commit
8185fca7c6

+ 9 - 4
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();

+ 5 - 0
mobile/lib/utils/multipart_upload_util.dart

@@ -8,6 +8,7 @@ import "package:logging/logging.dart";
 import "package:photos/core/constants.dart";
 import "package:photos/core/network/network.dart";
 import "package:photos/db/upload_locks_db.dart";
+import "package:photos/services/feature_flag_service.dart";
 import "package:photos/utils/crypto_util.dart";
 import "package:photos/utils/xml_parser_util.dart";
 
@@ -64,6 +65,10 @@ Future<int> calculatePartCount(int fileSize) async {
 
 Future<MultipartUploadURLs> 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: {

+ 2 - 2
mobile/pubspec.lock

@@ -745,10 +745,10 @@ packages:
     dependency: "direct main"
     description:
       name: flutter_local_notifications
-      sha256: f9a05409385b77b06c18f200a41c7c2711ebf7415669350bb0f8474c07bd40d1
+      sha256: a701df4866f9a38bb8e4450a54c143bbeeb0ce2381e7df5a36e1006f3b43bb28
       url: "https://pub.dev"
     source: hosted
-    version: "17.0.0"
+    version: "17.0.1"
   flutter_local_notifications_linux:
     dependency: transitive
     description: