ftp传输最后一直卡在最后10秒_FTP上传大文件程序卡死

本文介绍了在FTP上传文件时遇到程序卡死的问题,原因是防火墙提前关闭了空闲的控制连接,导致程序无法正常结束。解决方案是改进FTP上传代码。此外,分享了使用Python ftplib库进行文件上传和查看FTP盘文件信息的示例代码。
摘要由CSDN通过智能技术生成

在使用ftp上传文件的过程中发现程序很久不结束,起初以为是缓冲区设置过小导致传输速度变慢,但是几个小时都不见结束,通过查看ftp盘的文件发现文件上传其实已经结束,可是程序却没有结束

其实通过ftp上传文件会建立两个tcp连接,一条控制连接用来提交指令和接受回复,另一条数据连接是用来传输数据的,当指令发布完成后,控制连接会进入空闲状态,tcp不会对空闲状态的连接有时间限制,但是防火墙会提前杀掉空闲连接,并且数据连接是不感知的,所以文件传输完成的通知就不会被感知从而导致程序卡死

分享一下python的ftplib传输文件以及查看ftp盘文件信息的代码

# 上传文件

import ftplib

import sys

import datetime

today = datetime.datetime.combine(datetime.date.today(), datetime.time.min)

yesterday = today - datetime.timedelta(days=1)

f=ftplib.FTP("ip") # 实例化FTP对象

f.login("user", "password") # 登录

def ftp_upload():

file_remote="filename" # 指定上传文件名

file_local="" # 要上传的文件路径

bufsize=2048 # 设置缓冲器大小

fp=open(file_local, 'rb')

result=f.storbinary("

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值