python ftp timeout_python - FTP文件传输期间Python数据通道超时 - 堆栈内存溢出

我正在尝试使用Python的ftplib传输文件。

def ftps_put_file(host, user, password, ftp_file_path, processed_file):

try:

context = ssl.create_default_context(ssl.Purpose.SERVER_AUTH, cafile='C:\\PATH\\TO\\SECURE.crt')

with FTP_TLS(host, user=user, passwd=password, context=context, timeout=10) as connection, open(processed_file, 'rb') as read_file:

connection.set_debuglevel(2)

connection.prot_p()

connection.cwd(ftp_file_path)

connection.storbinary(f"STOR {processed_file.name}", read_file)

except Exception as e:

print('Error occured in transporter.ftps_put_file: ' + str(e))

我可以在文件传输期间连接到FTP主机,没有任何问题。 连接超时开始并关闭连接,然后该连接的日志显示为“ 425数据通道由于不满足最低带宽要求而超时”。 我使用了其他FTP客户端(Filezilla,WinSCP),并且两者都可以连接到主机。

连接超时设置为2分钟的日志

*cmd* 'PBSZ 0'

*put* 'PBSZ 0\r\n'

*get* '200 PBSZ command successful.\n'

*resp* '200 PBSZ command successful.'

*cmd* 'PROT P'

*put* 'PROT P\r\n'

*get* '200 PROT command successful.\n'

*resp* '200 PROT command successful.'

*cmd* 'CWD /'

*put* 'CWD /\r\n'

*get* '250 CWD command successful.\n'

*resp* '250 CWD command successful.'

*cmd* 'TYPE I'

*put* 'TYPE I\r\n'

*get* '200 Type set to I.\n'

*resp* '200 Type set to I.'

*cmd* 'PASV'

*put* 'PASV\r\n'

*get* '227 Entering Passive Mode (204,58,62,196,19,199).\n'

*resp* '227 Entering Passive Mode (204,58,62,196,19,199).'

*cmd* 'STOR text.txt'

*put* 'STOR text.txt\r\n'

*get* '125 Data connection already open; Transfer starting.\n'

*resp* '125 Data connection already open; Transfer starting.'

*cmd* 'QUIT'

*put* 'QUIT\r\n'

*get* '425 Data channel timed out due to not meeting the minimum bandwidth requirement.\n'

*resp* '425 Data channel timed out due to not meeting the minimum bandwidth requirement.'

连接超时设置为60秒或更短的日志此序列的顺序似乎很奇怪,因为连接退出后会给出226 Transfer Completed 。 它不应该说明转移完成然后退出吗?

*cmd* 'PBSZ 0'

*put* 'PBSZ 0\r\n'

*get* '200 PBSZ command successful.\n'

*resp* '200 PBSZ command successful.'

*cmd* 'PROT P'

*put* 'PROT P\r\n'

*get* '200 PROT command successful.\n'

*resp* '200 PROT command successful.'

*cmd* 'CWD /'

*put* 'CWD /\r\n'

*get* '250 CWD command successful.\n'

*resp* '250 CWD command successful.'

*cmd* 'TYPE I'

*put* 'TYPE I\r\n'

*get* '200 Type set to I.\n'

*resp* '200 Type set to I.'

*cmd* 'PASV'

*put* 'PASV\r\n'

*get* '227 Entering Passive Mode (204,58,62,196,20,46).\n'

*resp* '227 Entering Passive Mode (204,58,62,196,20,46).'

*cmd* 'STOR text.txt'

*put* 'STOR text.txt\r\n'

*get* '125 Data connection already open; Transfer starting.\n'

*resp* '125 Data connection already open; Transfer starting.'

*cmd* 'QUIT'

*put* 'QUIT\r\n'

*get* '226 Transfer complete.\n'

*resp* '226 Transfer complete.'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值