parse file extension from url query (#4017)

This commit is contained in:
LawyZheng
2025-11-18 15:28:14 +08:00
committed by GitHub
parent 9b97061b6d
commit ce76b400a9

View File

@@ -14,7 +14,7 @@ import uuid
from datetime import datetime from datetime import datetime
from pathlib import Path from pathlib import Path
from typing import Any, Awaitable, Callable, Protocol from typing import Any, Awaitable, Callable, Protocol
from urllib.parse import urlparse from urllib.parse import parse_qsl, urlparse
import aiofiles import aiofiles
import psutil import psutil
@@ -100,10 +100,26 @@ def set_download_file_listener(
) )
file_path.rename(str(file_path) + suffix) file_path.rename(str(file_path) + suffix)
return return
suffix = Path(download.url).suffix
parsed_url = urlparse(download.url)
parsed_qs = parse_qsl(parsed_url.query)
for key, value in parsed_qs:
if key.lower() == "filename":
suffix = Path(value).suffix
if suffix:
LOG.info(
"Add extension according to the parsed query params of download url",
workflow_run_id=workflow_run_id,
task_id=task_id,
filename=value,
)
file_path.rename(str(file_path) + suffix)
return
suffix = Path(parsed_url.path).suffix
if suffix: if suffix:
LOG.info( LOG.info(
"Add extension according to download url", "Add extension according to download url path",
workflow_run_id=workflow_run_id, workflow_run_id=workflow_run_id,
task_id=task_id, task_id=task_id,
filepath=str(file_path) + suffix, filepath=str(file_path) + suffix,