【问题标题】:FTP put working but FTPlib storlines/storbinary Not working on Linux DeviceFTP 投入工作,但 FTPlib storlines/storbinary 在 Linux 设备上不工作
【发布时间】:2021-02-13 06:59:12
【问题描述】:

我正在尝试将文本文件从 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)


【问题讨论】:

    标签: python linux ftp


    【解决方案1】:

    我查看了 Martin Prikryl 的个人资料,并在他的一个相关主题中找到了答案。如果在 ftplib 中发生这种情况,请添加

    ftp.set_pasv(False)
    

    到 Python 客户端脚本

    【讨论】:

    • 这意味着您正在使用主动模式。虽然它对您有用,但对大多数人来说这不起作用,因为活动模式会被防火墙阻止。更好的是配置您的服务器及其防火墙以允许被动模式。但是,是的,这是对您问题的回答。
    • 好的,我正在研究,谢谢您的建议!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-19
    • 2023-03-23
    • 2021-10-21
    • 2012-07-02
    • 2019-06-02
    • 2011-03-21
    • 2013-07-02
    相关资源
    最近更新 更多