Add zstandard compression support for project export

This commit is contained in:
grossmj
2022-05-31 18:08:34 +07:00
parent 37c7bc4956
commit 8a964390f8
7 changed files with 167 additions and 17 deletions

View File

@ -21,10 +21,10 @@ API routes for projects.
import os
import asyncio
import tempfile
import zipfile
import aiofiles
import time
import urllib.parse
import gns3server.utils.zipfile_zstd as zipfile
import logging
@ -285,7 +285,7 @@ async def export_project(
include_snapshots: bool = False,
include_images: bool = False,
reset_mac_addresses: bool = False,
compression: str = "zip",
compression: schemas.ProjectCompression = "zstd",
) -> StreamingResponse:
"""
Export a project as a portable archive.
@ -300,6 +300,8 @@ async def export_project(
compression = zipfile.ZIP_BZIP2
elif compression_query == "lzma":
compression = zipfile.ZIP_LZMA
elif compression_query == "zstd":
compression = zipfile.ZIP_ZSTANDARD
try:
begin = time.time()