From 149812914e1e9a52738e56a735ddef3c5f57145a Mon Sep 17 00:00:00 2001 From: ktianc <2445667550@qq.com> Date: Fri, 8 Mar 2024 16:31:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20oss=20=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E8=B7=AF=E5=BE=84=E9=94=99=E8=AF=AF=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kinit-api/utils/file/aliyun_oss.py | 6 +++--- kinit-api/utils/file/file_base.py | 20 ++++++++++++++++---- 2 files changed, 19 insertions(+), 7 deletions(-) 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: