Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.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 FTPS上载错误:425无法建立数据连接:不允许操作_Python_Ftplib_Tls1.2 - Fatal编程技术网

Python FTPS上载错误:425无法建立数据连接:不允许操作

Python FTPS上载错误:425无法建立数据连接:不允许操作,python,ftplib,tls1.2,Python,Ftplib,Tls1.2,我正在尝试使用ftps将文件发送到FTP服务器。登录和更改目录工作: import ftplib ftps = ftplib.FTP_TLS('host','user','pwd') ftps.set_pasv(True) ftps.prot_p() ftps.cwd('/target_directory') 但是,当我尝试上载文件时: file = open(file, 'rb') send_cmd = 'STOR file_name.txt' ftps.storbinary(send_cm

我正在尝试使用ftps将文件发送到FTP服务器。登录和更改目录工作:

import ftplib
ftps = ftplib.FTP_TLS('host','user','pwd')
ftps.set_pasv(True)
ftps.prot_p()
ftps.cwd('/target_directory')
但是,当我尝试上载文件时:

file = open(file, 'rb')
send_cmd = 'STOR file_name.txt'
ftps.storbinary(send_cmd, file)
file.close()
ftps.quit()
我得到以下错误:

File "/script/location/script.py", line 161, in <module>
ftps.storbinary(send_cmd,file)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ftplib.py", line 772, in storbinary
return self.voidresp()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ftplib.py", line 229, in voidresp
resp = self.getresp()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ftplib.py", line 222, in getresp
raise error_temp, resp
ftplib.error_temp: 425 Unable to build data connection: Operation not permitted
文件“/script/location/script.py”,第161行,在
storbinary(发送命令,文件)
storbinary格式的文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ftplib.py”,第772行
返回self.voidresp()
文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ftplib.py”,第229行,在voidresp中
resp=self.getresp()
getresp中的文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ftplib.py”,第222行
升高错误温度,分别
ftplib.error_temp:425无法建立数据连接:不允许操作
我已经读到425响应代码通常是处于活动模式的结果,这就是为什么我包括
ftps.set\u pasv(True)
(尽管默认情况下这是真的)


我还尝试使用
ftps.retrlines('LIST')
列出目录内容,但基本上得到了相同的错误。我正在使用Python 2.7.10。非常感谢您的帮助。

这是python中报告的一个错误:

您可以在新类中应用修补程序

class Explicit_FTP_TLS(ftplib.FTP_TLS):
    """Explicit FTPS, with shared TLS session"""
    def ntransfercmd(self, cmd, rest=None):
        conn, size = ftplib.FTP.ntransfercmd(self, cmd, rest)
        if self._prot_p:
            conn = self.context.wrap_socket(conn,
                                            server_hostname=self.host,
                                            session=self.sock.session)
        return conn, size

您有权访问FTP服务器的日志吗?我怀疑是服务器端的某个原因导致了“无法建立数据连接”错误。考虑到您使用的是FTPS,可能类似于
vsftpd
proftpd
拒绝TLS数据连接,除非数据连接上的TLS会话与用于控制连接的TLS会话相同。