fix: enhance filename validation and extraction in FileService #16867 (#16869)

This commit is contained in:
GuanMu 2025-03-27 16:46:10 +08:00 committed by GitHub
parent 82189e1bc5
commit d65da600e5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,5 +1,6 @@
import datetime
import hashlib
import os
import uuid
from typing import Any, Literal, Union
@ -38,7 +39,12 @@ class FileService:
source_url: str = "",
) -> UploadFile:
# get file extension
extension = filename.split(".")[-1].lower()
extension = os.path.splitext(filename)[1].lstrip(".").lower()
# check if filename contains invalid characters
if any(c in filename for c in ["/", "\\", ":", "*", "?", '"', "<", ">", "|"]):
raise ValueError("Filename contains invalid characters")
if len(filename) > 200:
filename = filename.split(".")[0][:200] + "." + extension