Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:ftputil只上传36kb的18mb文件_Python_Ftp - Fatal编程技术网

Python:ftputil只上传36kb的18mb文件

Python:ftputil只上传36kb的18mb文件,python,ftp,Python,Ftp,ftputil就是炸弹。。。。差不多了 下面我对host.upload的调用对小文本文件非常有效。对于较大的文件(我主要处理9-20GB的文件),没有例外,也没有错误,但只上载了10-40kb 从同一个客户端,我可以使用filezilla客户端很好地上传大文件,所以我知道没有这种问题。filezilla客户端和ftputil都使用主动模式ftp(防火墙有ftp修复程序,其中一个防火墙导致被动模式出现问题) 如何解决 class MySession(ftplib.FTP): def __

ftputil就是炸弹。。。。差不多了

下面我对host.upload的调用对小文本文件非常有效。对于较大的文件(我主要处理9-20GB的文件),没有例外,也没有错误,但只上载了10-40kb

从同一个客户端,我可以使用filezilla客户端很好地上传大文件,所以我知道没有这种问题。filezilla客户端和ftputil都使用主动模式ftp(防火墙有ftp修复程序,其中一个防火墙导致被动模式出现问题)

如何解决

class MySession(ftplib.FTP):

    def __init__(self, ftpServer, ftpUser, ftpPassword, ftpPort):
        ftplib.FTP.__init__(self)
        self.set_debuglevel(ftpDebugLevel)
        self.set_pasv(False)
        self.connect(ftpServer, ftpPort)
        self.login(ftpUser, ftpPassword)

host = ftputil.FTPHost(ftpServer, ftpUser, ftpPassword, ftpPort, session_factory=MySession) 

file = '18MBfile.zip'
print('ftp file to upload is:' + file + ' -- ' + join(dirpath,file) + ' -- ' + os.path.basename(file))
upload = host.upload(join(dirpath,file), destDir + os.path.basename(file))  # local, remote -- for remote: extract just file name from full path+filename

我很好奇你为什么要使用
ftputil
。对于新奇的东西,它比原始的
ftplib
简单得多。但是你所做的只是将一个文件上传到一个固定的位置,而且你写的
ftplib
代码是
ftputil
代码的8倍,那么为什么不首先在
ftplib
中完成呢,您能否至少使用等效的普通
ftplib
代码对其进行测试,以缩小问题发生的范围?