【问题标题】:Python FTPS upload error: 425 Unable to build data connection: Operation not permittedPython FTPS 上传错误:425 无法建立数据连接:不允许操作
【发布时间】:2016-01-31 00:35:33
【问题描述】:

我正在尝试使用 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

我了解到 425 响应代码通常是处于活动模式的结果,这就是我包含 ftps.set_pasv(True) 的原因(尽管默认情况下为 True)。

我也尝试过使用ftps.retrlines('LIST') 列出目录内容,但得到了基本相同的错误。我正在使用 Python 2.7.10。任何帮助将不胜感激。

【问题讨论】:

  • 您是否有权访问 FTP 服务器的日志?我怀疑是服务器端的某些东西导致了“无法建立数据连接”错误。鉴于您使用的是 FTPS,它可能类似于vsftpdproftpd 拒绝 TLS 数据连接除非数据连接上的 TLS 会话是与用于控制连接的 TLS 会话相同。

标签: python ftplib tls1.2


【解决方案1】:

这是python中的一个报告错误:https://bugs.python.org/issue19500

您可以在新类中应用补丁

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-10
    • 1970-01-01
    • 1970-01-01
    • 2011-11-20
    • 1970-01-01
    • 2019-11-08
    • 2012-03-12
    相关资源
    最近更新 更多