From 1e72485425cb8b3f7a622ed2d0885c2481cf576f Mon Sep 17 00:00:00 2001 From: Jakob Ketterl Date: Wed, 10 Feb 2021 22:24:43 +0100 Subject: [PATCH] implement temporary file cleanup --- owrx/controllers/imageupload.py | 1 - owrx/controllers/settings.py | 8 ++++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/owrx/controllers/imageupload.py b/owrx/controllers/imageupload.py index 8545020..2b51064 100644 --- a/owrx/controllers/imageupload.py +++ b/owrx/controllers/imageupload.py @@ -30,7 +30,6 @@ class ImageUploadController(AuthorizationMixin, AssetsController): # TODO: limit file size # TODO: check image mime type, if possible contents = self.get_body() - # TODO: clean up files after timeout or on shutdown with open(self.getFilePath(), 'wb') as f: f.write(contents) self.send_response(json.dumps({"uuid": self.uuid}), content_type="application/json") diff --git a/owrx/controllers/settings.py b/owrx/controllers/settings.py index f45d4da..27851be 100644 --- a/owrx/controllers/settings.py +++ b/owrx/controllers/settings.py @@ -27,6 +27,7 @@ import json import logging import shutil import os +from glob import glob logger = logging.getLogger(__name__) @@ -377,9 +378,12 @@ class GeneralSettingsController(AuthorizationMixin, WebpageController): if data[image_id] == "restore": os.unlink(data_file) elif data[image_id]: - filename = "{}-{}".format(image_id, data[image_id]) - shutil.copy(config.get_temporary_directory() + "/" + filename, data_file) + temporary_file = "{}/{}-{}".format(config.get_temporary_directory(), image_id, data[image_id]) + shutil.copy(temporary_file, data_file) del data[image_id] + # remove any accumulated temporary files on save + for file in glob("{}/{}*".format(config.get_temporary_directory(), image_id)): + os.unlink(file) def processFormData(self): data = parse_qs(self.get_body().decode("utf-8"), keep_blank_values=True)