Bladeren bron

Start the upload timeout after it's processing has begun

vishnukvmd 3 jaren geleden
bovenliggende
commit
03152dcaf2
2 gewijzigde bestanden met toevoegingen van 8 en 8 verwijderingen
  1. 1 7
      lib/services/remote_sync_service.dart
  2. 7 1
      lib/utils/file_uploader.dart

+ 1 - 7
lib/services/remote_sync_service.dart

@@ -45,8 +45,6 @@ class RemoteSyncService {
 
   static const kMaximumPermissibleUploadsInThrottledMode = 4;
 
-  static const kFileUploadTimeout = Duration(minutes: 50);
-
   static final RemoteSyncService instance =
       RemoteSyncService._privateConstructor();
 
@@ -250,11 +248,7 @@ class RemoteSyncService {
   void _uploadFile(File file, int collectionID, List<Future> futures) {
     final future = _uploader
         .upload(file, collectionID)
-        .timeout(kFileUploadTimeout, onTimeout: () async {
-      final message = "Upload timed out for file " + file.toString();
-      _logger.severe(message);
-      throw TimeoutException(message);
-    }).then((uploadedFile) => _onFileUploaded(uploadedFile));
+        .then((uploadedFile) => _onFileUploaded(uploadedFile));
     futures.add(future);
   }
 

+ 7 - 1
lib/utils/file_uploader.dart

@@ -35,6 +35,7 @@ class FileUploader {
   static const kMaximumThumbnailCompressionAttempts = 2;
   static const kMaximumUploadAttempts = 4;
   static const kBlockedUploadsPollFrequency = Duration(seconds: 2);
+  static const kFileUploadTimeout = Duration(minutes: 50);
 
   final _logger = Logger("FileUploader");
   final _dio = Network.instance.getDio();
@@ -220,7 +221,12 @@ class FileUploader {
     _currentlyUploading++;
     final localID = file.localID;
     try {
-      final uploadedFile = await _tryToUpload(file, collectionID, forcedUpload);
+      final uploadedFile = await _tryToUpload(file, collectionID, forcedUpload)
+          .timeout(kFileUploadTimeout, onTimeout: () {
+        final message = "Upload timed out for file " + file.toString();
+        _logger.severe(message);
+        throw TimeoutException(message);
+      });
       _queue.remove(localID).completer.complete(uploadedFile);
       return uploadedFile;
     } catch (e) {