微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我正在努力使用Python将文件上传到FTPS站点FTP_TLS

如何解决我正在努力使用Python将文件上传到FTPS站点FTP_TLS

首先连接-

*resP* '200 Port command successful'
*cmd* 'STOR DT_20201106.csv'
*resP* '150 opening data channel for file upload to server of "/test/DT_20201106.csv"'

但是随后我得到了错误错误消息显示-#问题#7995:如果未设置认超时并且正在监听 超时:超时

这是我正在使用的代码(我在这里浏览了以前的答案,并试图合并解决方案)。

from ftplib import FTP_TLS
import sys,os
import ftplib
import ssl
import ftputil


ftp_server='servername'
username='username'
password='password'
port='990'
destdir="/test"

class ImplicitFTP_TLS(ftplib.FTP_TLS):
    """FTP_TLS subclass that automatically wraps sockets in SSL to support implicit FTPS."""

    def __init__(self,*args,**kwargs):
        super().__init__(*args,**kwargs)
        self._sock = None

    @property
    def sock(self):
        """Return the socket."""
        return self._sock

    @sock.setter
    def sock(self,value):
        """When modifying the socket,ensure that it is ssl wrapped."""
        if value is not None and not isinstance(value,ssl.SSLSocket):
            value = self.context.wrap_socket(value)
        self._sock = value


ftps = FTP_TLS(ftp_server)
ftps.set_debuglevel(1)
ftps.set_pasv(False)
ftps.connect(port=990,timeout=10)
ftps.login(username,password)
ftps.prot_p()
#ftps.ccc()
ftps.cwd(destdir)
ftps.pwd()

root="C:\\Client work\\test"
destdir="/test"

try:
       ftps.cwd(destdir)
except Exception:
       ftps.mkd(destdir)
for (dir,_,files) in os.walk(root):
       newdir=destdir+dir[len(root):len(dir)].replace("\\","/")
       try:
               ftps.cwd(newdir)
       except Exception:
               ftps.mkd(newdir)
       for f in files:
               file = open(os.path.join(dir,f),'rb')
               ftps.storbinary('STOR '+f,'DT_20201106.csv',blocksize=8192)
               file.close()
ftps.close()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。