Przeglądaj źródła

Retry failed file puts

Vishnu Mohandas 4 lat temu
rodzic
commit
8dfa777db3
1 zmienionych plików z 6 dodań i 0 usunięć
  1. 6 0
      lib/utils/file_uploader.dart

+ 6 - 0
lib/utils/file_uploader.dart

@@ -29,6 +29,7 @@ class FileUploader {
   final _queue = LinkedHashMap<int, FileUploadItem>();
   final kMaximumConcurrentUploads = 4;
   final kMaximumThumbnailCompressionAttempts = 2;
+  final kMaximumUploadAttempts = 4;
   int _currentlyUploading = 0;
   final _uploadURLs = Queue<UploadURL>();
 
@@ -489,6 +490,11 @@ class FileUploader {
           attempt == 1) {
         return _putFile(uploadURL, file,
             contentLength: file.readAsBytesSync().length, attempt: 2);
+      } else if (attempt < kMaximumUploadAttempts) {
+        _logger.info("Retrying upload that failed ", e);
+        final newUploadURL = await _getUploadURL();
+        return _putFile(newUploadURL, file,
+            contentLength: file.readAsBytesSync().length, attempt: attempt++);
       } else {
         throw e;
       }