Quellcode durchsuchen

Ensure that temp files generated are deleted

Vishnu Mohandas vor 4 Jahren
Ursprung
Commit
06f5db3fd7
2 geänderte Dateien mit 20 neuen und 19 gelöschten Zeilen
  1. 4 8
      lib/core/configuration.dart
  2. 16 11
      lib/utils/file_uploader.dart

+ 4 - 8
lib/core/configuration.dart

@@ -35,16 +35,15 @@ class Configuration {
   String _secretKey;
   String _secretKey;
   String _documentsDirectory;
   String _documentsDirectory;
   String _tempDirectory;
   String _tempDirectory;
-  String _thumbnailsDirectory;
 
 
   Future<void> init() async {
   Future<void> init() async {
     _preferences = await SharedPreferences.getInstance();
     _preferences = await SharedPreferences.getInstance();
     _secureStorage = FlutterSecureStorage();
     _secureStorage = FlutterSecureStorage();
     _documentsDirectory = (await getApplicationDocumentsDirectory()).path;
     _documentsDirectory = (await getApplicationDocumentsDirectory()).path;
     _tempDirectory = _documentsDirectory + "/temp/";
     _tempDirectory = _documentsDirectory + "/temp/";
-    _thumbnailsDirectory = _documentsDirectory + "/thumbnails/";
-    new io.Directory(_tempDirectory).createSync(recursive: true);
-    new io.Directory(_thumbnailsDirectory).createSync(recursive: true);
+    final tempDirectory = new io.Directory(_tempDirectory);
+    tempDirectory.deleteSync(recursive: true);
+    tempDirectory.createSync(recursive: true);
     _key = await _secureStorage.read(key: keyKey);
     _key = await _secureStorage.read(key: keyKey);
     _secretKey = await _secureStorage.read(key: secretKeyKey);
     _secretKey = await _secureStorage.read(key: secretKeyKey);
   }
   }
@@ -227,10 +226,7 @@ class Configuration {
     return _documentsDirectory;
     return _documentsDirectory;
   }
   }
 
 
-  String getThumbnailsDirectory() {
-    return _thumbnailsDirectory;
-  }
-
+  // Caution: This directory is cleared on app start
   String getTempDirectory() {
   String getTempDirectory() {
     return _tempDirectory;
     return _tempDirectory;
   }
   }

+ 16 - 11
lib/utils/file_uploader.dart

@@ -117,11 +117,7 @@ class FileUploader {
       if (!forcedUpload) {
       if (!forcedUpload) {
         _queue.remove(file.generatedID).completer.complete(uploadedFile);
         _queue.remove(file.generatedID).completer.complete(uploadedFile);
       }
       }
-    } catch (e, s) {
-      _logger.severe(
-          "File upload failed for file ID " + file.generatedID.toString(),
-          e,
-          s);
+    } catch (e) {
       if (!forcedUpload) {
       if (!forcedUpload) {
         _queue.remove(file.generatedID).completer.completeError(e);
         _queue.remove(file.generatedID).completer.completeError(e);
       }
       }
@@ -206,12 +202,21 @@ class FileUploader {
         "decryptionHeader": metadataDecryptionHeader,
         "decryptionHeader": metadataDecryptionHeader,
       }
       }
     };
     };
-    final response = await _dio.post(
-      Configuration.instance.getHttpEndpoint() + "/files",
-      options:
-          Options(headers: {"X-Auth-Token": Configuration.instance.getToken()}),
-      data: request,
-    );
+    var response;
+    try {
+      response = await _dio.post(
+        Configuration.instance.getHttpEndpoint() + "/files",
+        options: Options(
+            headers: {"X-Auth-Token": Configuration.instance.getToken()}),
+        data: request,
+      );
+    } catch (e, s) {
+      _logger.severe(
+          "File upload failed for " + file.generatedID.toString(), e, s);
+      encryptedFile.deleteSync();
+      encryptedThumbnail.deleteSync();
+      throw e;
+    }
     encryptedFile.deleteSync();
     encryptedFile.deleteSync();
     encryptedThumbnail.deleteSync();
     encryptedThumbnail.deleteSync();
     final data = response.data;
     final data = response.data;