fix: softlink exists

This commit is contained in:
sohunjug 2024-03-01 22:14:07 +08:00 committed by GitHub
parent 8e0df90177
commit db28986d22
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -319,7 +319,7 @@ class FileTransferModule(_ModuleBase):
:param transfer_type: RmtMode转移方式 :param transfer_type: RmtMode转移方式
:param over_flag: 是否覆盖为True时会先删除再转移 :param over_flag: 是否覆盖为True时会先删除再转移
""" """
if new_file.exists(): if new_file.exists() or new_file.is_symlink():
if not over_flag: if not over_flag:
logger.warn(f"文件已存在:{new_file}") logger.warn(f"文件已存在:{new_file}")
return 0 return 0
@ -486,7 +486,13 @@ class FileTransferModule(_ModuleBase):
# 判断是否要覆盖 # 判断是否要覆盖
overflag = False overflag = False
if new_file.exists(): target_file = new_file
if new_file.exists() or new_file.is_symlink():
if new_file.is_symlink():
target_file = new_file.readlink()
if not target_file.exists():
overflag = True
if not overflag:
# 目标文件已存在 # 目标文件已存在
logger.info(f"目标文件已存在,转移覆盖模式:{settings.OVERWRITE_MODE}") logger.info(f"目标文件已存在,转移覆盖模式:{settings.OVERWRITE_MODE}")
match settings.OVERWRITE_MODE: match settings.OVERWRITE_MODE:
@ -495,7 +501,7 @@ class FileTransferModule(_ModuleBase):
overflag = True overflag = True
case 'size': case 'size':
# 存在时大覆盖小 # 存在时大覆盖小
if new_file.stat().st_size < in_path.stat().st_size: if target_file.stat().st_size < in_path.stat().st_size:
logger.info(f"目标文件文件大小更小,将覆盖:{new_file}") logger.info(f"目标文件文件大小更小,将覆盖:{new_file}")
overflag = True overflag = True
else: else: