ftputil就是炸弹......差不多!
我对下面的host.upload的调用对小文本文件很有用。对于较大的文件(我主要使用9-20 GB的文件),没有例外,也没有错误,但只上传了10-40kb。
从同一个客户端我可以使用filezilla客户端上传大文件,所以我知道没有那种问题。 filezilla客户端和ftputil都使用主动模式ftp(防火墙有ftp fixup,其中一个防火墙导致被动的问题)
如何解决?
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