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

时间:2014-01-03 20:08:25

标签: python ftp

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

0 个答案:

没有答案