我正在尝试将一个文本文件从Linux设备上载到我的FTP服务器。在Linux中使用实际的FTP程序可以很好地工作,但我希望能够从python脚本上载,以便可以运行其他函数
import ftplib
import os
error = False
try:
ftp = ftplib.FTP('192.168.8.10')
ftp.login('rig021', 'Ex021')
file = open('offlineCache.txt', "rb")
transfer = ftp.storbinary('STOR offlineResults.txt', file)
file.close()
ftp.close()
except ftplib.all_errors as e:
print(e)
error = True
我能够成功登录,但代码保持不变,直到服务器控制台出现此问题“[rig021]被动数据通道超时”
从网上和其他帖子上看,人们说这是一个防火墙问题。我已经禁用了防火墙,但我怀疑这对我来说是个问题,因为我可以用linux上常见的实际FTP上传文件
如果有人有任何想法或能为我指出正确的方向,我将不胜感激。干杯
以下是Python FTP客户端的日志:
UN70HS07M01000532 admin@Rig08Ex:/mnt/sdcard$ python ftpClient.py
*cmd* 'USER rig021'
*put* 'USER rig021\r\n'
*get* '331 Username ok, send password.\r\n'
*resp* '331 Username ok, send password.'
*cmd* 'PASS *****'
*put* 'PASS *****\r\n'
*get* '230 Login successful.\r\n'
*resp* '230 Login successful.'
*cmd* 'TYPE I'
*put* 'TYPE I\r\n'
*get* '200 Type set to: Binary.\r\n'
*resp* '200 Type set to: Binary.'
*cmd* 'PASV'
*put* 'PASV\r\n'
*get* '227 Entering passive mode (192,168,8,10,200,196).\r\n'
*resp* '227 Entering passive mode (192,168,8,10,200,196).'
这来自linux上的标准FTP客户端:
Verbose mode on.
ftp> put offlineCache.txt
local: offlineCache.txt remote: offlineCache.txt
200 Active data connection established.
125 Data connection already open. Transfer starting.
226 Transfer complete.
2614136 bytes sent in 0.255 secs (1e+04 Kbytes/sec)
我浏览了Martin Prikryl的个人资料,在他的一篇相关文章中找到了答案。如果在ftplib中发生这种情况,请添加
到Python客户端脚本
相关问题 更多 >
编程相关推荐