diff --git a/kinit-api/utils/file/aliyun_oss.py b/kinit-api/utils/file/aliyun_oss.py index 910cabe..e561653 100644 --- a/kinit-api/utils/file/aliyun_oss.py +++ b/kinit-api/utils/file/aliyun_oss.py @@ -58,7 +58,7 @@ class AliyunOSS(FileBase): # 验证图片类型 await self.validate_file(file, max_size, self.IMAGE_ACCEPT) # 生成文件路径 - path = self.generate_static_file_path(path, file.filename) + path = self.generate_relative_path(path, file.filename) file_data = await file.read() return await self.__upload_file_to_oss(path, file_data) @@ -74,7 +74,7 @@ class AliyunOSS(FileBase): # 验证图片类型 await self.validate_file(file, max_size, self.VIDEO_ACCEPT) # 生成文件路径 - path = self.generate_static_file_path(path, file.filename) + path = self.generate_relative_path(path, file.filename) file_data = await file.read() return await self.__upload_file_to_oss(path, file_data) @@ -86,7 +86,7 @@ class AliyunOSS(FileBase): :param file: 文件对象 :return: 上传后的文件oss链接 """ - path = self.generate_static_file_path(path, file.filename) + path = self.generate_relative_path(path, file.filename) file_data = await file.read() return await self.__upload_file_to_oss(path, file_data) diff --git a/kinit-api/utils/file/file_base.py b/kinit-api/utils/file/file_base.py index f229d38..9d5a250 100644 --- a/kinit-api/utils/file/file_base.py +++ b/kinit-api/utils/file/file_base.py @@ -44,15 +44,14 @@ class FileBase: return str(int((datetime.datetime.now().replace(hour=0, minute=0, second=0)).timestamp())) @classmethod - def generate_static_file_path(cls, path: str, filename: str = None, suffix: str = None) -> str: + def generate_relative_path(cls, path: str, filename: str = None, suffix: str = None) -> str: """ - 生成 static 静态文件路径,生成规则:自定义目录/当天日期时间戳/随机文件名称 + 生成相对路径,生成规则:自定义目录/当天日期时间戳/随机文件名称 1. filename 参数或者 suffix 参数必须填写一个 2. filename 参数和 suffix 参数都存在则优先取 suffix 参数为后缀 :param path: static 指定目录类别 :param filename: 文件名称,只用户获取后缀,不做真实文件名称,避免文件重复问题 :param suffix: 文件后缀 - :return: """ if not filename and not suffix: raise ValueError("filename 参数或者 suffix 参数必须填写一个") @@ -64,7 +63,20 @@ class FileBase: if path[-1] == "/": path = path[:-1] today = datetime.datetime.strftime(datetime.datetime.now(), "%Y%m%d") - return f"{STATIC_ROOT}/{path}/{today}/{cls.get_random_filename(suffix)}" + return f"{path}/{today}/{cls.get_random_filename(suffix)}" + + @classmethod + def generate_static_file_path(cls, path: str, filename: str = None, suffix: str = None) -> str: + """ + 生成 static 静态文件路径,生成规则:自定义目录/当天日期时间戳/随机文件名称 + 1. filename 参数或者 suffix 参数必须填写一个 + 2. filename 参数和 suffix 参数都存在则优先取 suffix 参数为后缀 + :param path: static 指定目录类别 + :param filename: 文件名称,只用户获取后缀,不做真实文件名称,避免文件重复问题 + :param suffix: 文件后缀 + :return: + """ + return f"{STATIC_ROOT}/{cls.generate_relative_path(path, filename, suffix)}" @classmethod def generate_temp_file_path(cls, filename: str = None, suffix: str = None) -> str: