| import datetime | import datetime | ||||
| import hashlib | import hashlib | ||||
| import os | |||||
| import uuid | import uuid | ||||
| from typing import Any, Literal, Union | from typing import Any, Literal, Union | ||||
| source_url: str = "", | source_url: str = "", | ||||
| ) -> UploadFile: | ) -> UploadFile: | ||||
| # get file extension | # 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: | if len(filename) > 200: | ||||
| filename = filename.split(".")[0][:200] + "." + extension | filename = filename.split(".")[0][:200] + "." + extension | ||||