def create_backup_file(self, source_dir, backup_basename): temp_dir = tempfile.mkdtemp() try: backup_filename = os.path.join(temp_dir, backup_basename) try: tar_file = tarfile.open(backup_filename, 'w|gz') try: tar_file.add(source_dir) finally: tar_file.close() return utils.create_spooled_temporary_file(backup_filename) finally: if os.path.exists(backup_filename): os.remove(backup_filename) finally: os.rmdir(temp_dir)
def backup_media(): extension = "tar.gz" filename = utils.filename_generate(extension, content_type='media') # Create tarball media_storage = get_storage_class()() outputfile = utils.create_spooled_temporary_file() tar_file = tarfile.open(name=filename, fileobj=outputfile, mode='w:gz') for media_filename in explore_storage(media_storage): tarinfo = tarfile.TarInfo(media_filename) media_file = media_storage.open(media_filename) tarinfo.size = len(media_file) tar_file.addfile(tarinfo, media_file) # Close the TAR for writing tar_file.close() # Store backup outputfile.seek(0) return outputfile, filename
def create_backup_file(self, source_dir, backup_basename, **kwargs): temp_dir = tempfile.mkdtemp(dir=dbbackup_settings.TMP_DIR) try: backup_filename = os.path.join(temp_dir, backup_basename) try: tar_file = tarfile.open(backup_filename, 'w|gz') \ if kwargs.get('compress') \ else tarfile.open(backup_filename, 'w') try: tar_file.add(source_dir) finally: tar_file.close() return utils.create_spooled_temporary_file(backup_filename) finally: if os.path.exists(backup_filename): os.remove(backup_filename) finally: os.rmdir(temp_dir)
def test_func(self, *args): utils.create_spooled_temporary_file(filepath=self.path)