Ensure that temp files generated are deleted

This commit is contained in:
Vishnu Mohandas 2020-11-16 12:32:09 +05:30
parent d1834985d5
commit 06f5db3fd7
2 changed files with 20 additions and 19 deletions

View file

@ -35,16 +35,15 @@ class Configuration {
String _secretKey;
String _documentsDirectory;
String _tempDirectory;
String _thumbnailsDirectory;
Future<void> init() async {
_preferences = await SharedPreferences.getInstance();
_secureStorage = FlutterSecureStorage();
_documentsDirectory = (await getApplicationDocumentsDirectory()).path;
_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);
_secretKey = await _secureStorage.read(key: secretKeyKey);
}
@ -227,10 +226,7 @@ class Configuration {
return _documentsDirectory;
}
String getThumbnailsDirectory() {
return _thumbnailsDirectory;
}
// Caution: This directory is cleared on app start
String getTempDirectory() {
return _tempDirectory;
}

View file

@ -117,11 +117,7 @@ class FileUploader {
if (!forcedUpload) {
_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) {
_queue.remove(file.generatedID).completer.completeError(e);
}
@ -206,12 +202,21 @@ class FileUploader {
"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();
encryptedThumbnail.deleteSync();
final data = response.data;