首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python 3.8.5 FTPS连接

Python 3.8.5 FTPS连接
EN

Stack Overflow用户
提问于 2020-08-06 14:18:29
回答 1查看 1.5K关注 0票数 0

我正在尝试建立到FTP服务器的FTPS (或FTP)连接。这是通过Visual Studio代码在Python 3.8.5 32位上完成的。

代码如下:

代码语言:javascript
复制
import ftplib
session = ftplib.FTP_TLS('server address')
#session.connect ('server address', 991)
session.login(user='username',passwd='password')
#session.prot_p()
session.set_pasv(True)
session.cwd("files")
print(session.pwd())
filename = "ftpTest.txt"
my_file = open('filepath\\ftpTest.txt', 'wb') # Open a local file to store the downloaded file
session.retrbinary('RETR ' + filename, my_file.write, 1024)

session.quit()

我可以获得session.pwd (它显示/files),但在大约22秒内第11行(session.retrbinary)的连接超时,出现以下错误:

代码语言:javascript
复制
Exception has occurred: TimeoutError
[WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond

我曾尝试在Python ftplib timing out之后将session.set_pasv设置为True和False。将其设置为True将引发TimeoutError,将其设置为False将在第11行引发以下错误:

代码语言:javascript
复制
Exception has occurred: error_perm
500 Illegal PORT command

并且还尝试在Python SSL FTP connection timing out之后设置不同的端口(991),并且它在第3行引发超时错误。

在不使用TLS的情况下使用FTP时,第4行(session.login)出现以下错误:

代码语言:javascript
复制
Exception has occurred: error_perm
530 Non-anonymous sessions must use encryption.

关闭我的McAfee LiveSafe防火墙也没有帮助。Btw文件传输工程与Filezilla,能够自由传输。

EN

回答 1

Stack Overflow用户

发布于 2020-08-12 10:48:59

设置安全数据连接并将会话af更改为INET6似乎对我很有效。这是一位同事向我提出的建议,至于为什么它会起作用,我无法理解。如果任何人能提供适当的解释,请这样做。

代码:

代码语言:javascript
复制
session.login(user='username',passwd='password')
session.prot_p()
session.af = socket.AF_INET6
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63277885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档