Accept Merge Request #2074: (feature/6694 -> develop)
Merge Request: 修改上传ftp代码 Created By: @胡尧 Accepted By: @胡尧 URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/2074?initial=true
This commit is contained in:
@@ -261,8 +261,50 @@ def transfer_files(
|
|||||||
target_path = f"{target_dir}/{relative_path}/{item}"
|
target_path = f"{target_dir}/{relative_path}/{item}"
|
||||||
else:
|
else:
|
||||||
target_path = f"{target_dir}/{item}"
|
target_path = f"{target_dir}/{item}"
|
||||||
|
|
||||||
|
# 规范化路径
|
||||||
|
target_path = target_path.replace('\\', '/').strip('/')
|
||||||
|
|
||||||
|
# 确保目标目录存在
|
||||||
|
target_dir_path = '/'.join(target_path.split('/')[:-1])
|
||||||
|
try:
|
||||||
|
target_ftp.ftp.cwd('/') # 回到根目录
|
||||||
|
for dir_part in target_dir_path.split('/'):
|
||||||
|
if dir_part:
|
||||||
|
try:
|
||||||
|
target_ftp.ftp.cwd(dir_part)
|
||||||
|
except:
|
||||||
|
try:
|
||||||
|
target_ftp.ftp.mkd(dir_part)
|
||||||
|
target_ftp.ftp.cwd(dir_part)
|
||||||
|
except Exception as e:
|
||||||
|
logging.error(f"创建目录失败 {dir_part}: {str(e)}")
|
||||||
|
raise
|
||||||
|
except Exception as e:
|
||||||
|
logging.error(f"处理目标目录失败: {str(e)}")
|
||||||
|
raise
|
||||||
|
|
||||||
|
# 检查FTP连接状态
|
||||||
|
try:
|
||||||
|
target_ftp.ftp.voidcmd('NOOP')
|
||||||
|
except:
|
||||||
|
logging.error("FTP连接已断开,尝试重新连接")
|
||||||
|
target_ftp.ftp.connect(target_ftp_info['host'], target_ftp_info['port'])
|
||||||
|
target_ftp.ftp.login(target_ftp_info['username'], target_ftp_info['password'])
|
||||||
|
|
||||||
|
# 上传文件
|
||||||
|
try:
|
||||||
with open(temp_path, 'rb') as f:
|
with open(temp_path, 'rb') as f:
|
||||||
|
# 检查文件是否可读
|
||||||
|
content = f.read()
|
||||||
|
if not content:
|
||||||
|
raise Exception("临时文件为空")
|
||||||
|
f.seek(0) # 重置文件指针
|
||||||
target_ftp.ftp.storbinary(f'STOR {target_path}', f)
|
target_ftp.ftp.storbinary(f'STOR {target_path}', f)
|
||||||
|
except Exception as e:
|
||||||
|
logging.error(f"上传文件失败: {str(e)}")
|
||||||
|
logging.error(f"目标路径: {target_path}")
|
||||||
|
raise
|
||||||
|
|
||||||
transfered_file_list.append(item)
|
transfered_file_list.append(item)
|
||||||
# 删除临时文件
|
# 删除临时文件
|
||||||
|
|||||||
Reference in New Issue
Block a user