修复 oss 文件上传路径错误问题

This commit is contained in:
ktianc 2024-03-08 16:31:14 +08:00
parent 1e7dbec10b
commit 149812914e
2 changed files with 19 additions and 7 deletions

View File

@ -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)

View File

@ -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: