here’s a working version:
@anvil.server.callable
def make_zip_remote(file, zip_file_name):
if not zip_file_name.endswith(".zip"):
zip_file_name += ".zip"
with tempfile.TemporaryDirectory() as temp_dir:
with anvil.media.TempFile(file) as f_name:
shutil.copy(f_name, temp_dir + "/" + file.name)
with anvil.media.TempFile() as z_name:
my_zip = shutil.make_archive(z_name, 'zip', root_dir=temp_dir)
tmp_file = anvil.media.from_file(my_zip, 'application/zip', zip_file_name)
app_tables.files.add_row(file=tmp_file)