diff --git a/turbinia/api/routes/evidence.py b/turbinia/api/routes/evidence.py index ea7352db6..f8737dc2d 100644 --- a/turbinia/api/routes/evidence.py +++ b/turbinia/api/routes/evidence.py @@ -28,6 +28,7 @@ from turbinia import config as turbinia_config from turbinia import state_manager from turbinia import TurbiniaException +from pathlib import Path log = logging.getLogger(__name__) router = APIRouter(prefix='/evidence', tags=['Turbinia Evidence']) @@ -54,9 +55,11 @@ async def get_file_path(file_name: str, ticket_id: str) -> str: file_path (str): Path where the file will be saved. """ try: - file_name_without_ext, file_extension = os.path.splitext(file_name) + p = Path(file_name) + file_stem = p.stem + full_extension = ''.join(p.suffixes) current_time = datetime.now().strftime(turbinia_config.DATETIME_FORMAT) - new_name = f'{file_name_without_ext}_{current_time}{file_extension}' + new_name = f"{file_stem}_{current_time}{full_extension}" os.makedirs( f'{turbinia_config.API_EVIDENCE_UPLOAD_DIR}/{ticket_id}', exist_ok=True) return os.path.join( diff --git a/turbinia/api/routes/request.py b/turbinia/api/routes/request.py index 39933c89c..bc0e716f6 100644 --- a/turbinia/api/routes/request.py +++ b/turbinia/api/routes/request.py @@ -60,7 +60,7 @@ async def get_requests_summary(request: Request): detail='Error retrieving requests summary') from exception -@router.get('/report/{request_id}') +@router.get('/report/{request_id:path}') async def get_request_report(request: Request, request_id: str): """Retrieves the MarkDown report of a Turbinia request. @@ -86,7 +86,7 @@ async def get_request_report(request: Request, request_id: str): detail='Error retrieving markdown report') from exception -@router.get('/{request_id}') +@router.get('/{request_id:path}') async def get_request_status(request: Request, request_id: str): """Retrieves status for a Turbinia Request.