Explorar o código

Timeout file uploads after 50m

vishnukvmd %!s(int64=3) %!d(string=hai) anos
pai
achega
8f542745d3
Modificáronse 1 ficheiros con 7 adicións e 1 borrados
  1. 7 1
      lib/utils/file_uploader.dart

+ 7 - 1
lib/utils/file_uploader.dart

@@ -35,6 +35,7 @@ class FileUploader {
   static const kMaximumThumbnailCompressionAttempts = 2;
   static const kMaximumThumbnailCompressionAttempts = 2;
   static const kMaximumUploadAttempts = 4;
   static const kMaximumUploadAttempts = 4;
   static const kBlockedUploadsPollFrequency = Duration(seconds: 2);
   static const kBlockedUploadsPollFrequency = Duration(seconds: 2);
+  static const kFileUploadTimeout = Duration(minutes: 50);
 
 
   final _logger = Logger("FileUploader");
   final _logger = Logger("FileUploader");
   final _dio = Network.instance.getDio();
   final _dio = Network.instance.getDio();
@@ -326,7 +327,12 @@ class FileUploader {
           await _putFile(thumbnailUploadURL, encryptedThumbnailFile);
           await _putFile(thumbnailUploadURL, encryptedThumbnailFile);
 
 
       final fileUploadURL = await _getUploadURL();
       final fileUploadURL = await _getUploadURL();
-      String fileObjectKey = await _putFile(fileUploadURL, encryptedFile);
+      String fileObjectKey = await _putFile(fileUploadURL, encryptedFile)
+          .timeout(kFileUploadTimeout, onTimeout: () async {
+        _logger.severe("Upload timed out for file of size " +
+            (await encryptedFile.length()).toString());
+        return;
+      });
 
 
       final metadata =
       final metadata =
           await file.getMetadataForUpload(mediaUploadData.sourceFile);
           await file.getMetadataForUpload(mediaUploadData.sourceFile);