diff options
author | Micah Lee <micah@micahflee.com> | 2021-11-18 20:03:18 -0800 |
---|---|---|
committer | Micah Lee <micah@micahflee.com> | 2021-11-18 20:03:18 -0800 |
commit | f5b60de2e6f127c731d1c06fdb85d0131bfb7a92 (patch) | |
tree | 2e12bc4a239fc367939af83b3fa6b3e7b972704e /cli/onionshare_cli/web/send_base_mode.py | |
parent | 236bc33bc850f3209934de003b732705a4b984f4 (diff) | |
download | onionshare-f5b60de2e6f127c731d1c06fdb85d0131bfb7a92.tar.gz onionshare-f5b60de2e6f127c731d1c06fdb85d0131bfb7a92.zip |
Use high level tempfile classes that clean up after themselves
Diffstat (limited to 'cli/onionshare_cli/web/send_base_mode.py')
-rw-r--r-- | cli/onionshare_cli/web/send_base_mode.py | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/cli/onionshare_cli/web/send_base_mode.py b/cli/onionshare_cli/web/send_base_mode.py index 27de598a..52720f6a 100644 --- a/cli/onionshare_cli/web/send_base_mode.py +++ b/cli/onionshare_cli/web/send_base_mode.py @@ -42,10 +42,11 @@ class SendBaseModeWeb: self.is_zipped = False self.download_filename = None self.download_filesize = None - self.gzip_filename = None - self.gzip_filesize = None self.zip_writer = None + # Store the tempfile objects here, so when they're garbage collected the files are deleted + self.gzip_files = [] + # If autostop_sharing, only allow one download at a time self.download_in_progress = False @@ -192,12 +193,12 @@ class SendBaseModeWeb: # gzip compress the individual file, if it hasn't already been compressed if use_gzip: if filesystem_path not in self.gzip_individual_files: - gzip_filename = tempfile.mkstemp("wb+")[1] - self._gzip_compress(filesystem_path, gzip_filename, 6, None) - self.gzip_individual_files[filesystem_path] = gzip_filename - - # Make sure the gzip file gets cleaned up when onionshare stops - self.web.cleanup_filenames.append(gzip_filename) + self.gzip_files.append( + tempfile.TemporaryFile("wb+", dir=self.common.build_tmp_dir()) + ) + gzip_file = self.gzip_files[-1] + self._gzip_compress(filesystem_path, gzip_file.name, 6, None) + self.gzip_individual_files[filesystem_path] = gzip_file.name file_to_download = self.gzip_individual_files[filesystem_path] filesize = os.path.getsize(self.gzip_individual_files[filesystem_path]) |