python ftp 服务器显示“150 文件状态正常。即将打开数据连接。”啥都不做

Posted

技术标签:

【中文标题】python ftp 服务器显示“150 文件状态正常。即将打开数据连接。”啥都不做【英文标题】:python ftp server showing "150 File status okay. About to open data connection." and does nothingpython ftp 服务器显示“150 文件状态正常。即将打开数据连接。”什么都不做 【发布时间】:2012-07-14 10:53:34 【问题描述】:

我正在尝试使用 pyftpdlib 模块在 python 中运行 ftp 服务器。出现的问题是它显示“150 文件状态正常。即将打开数据连接”。然后永远保持这种状态,直到服务器超时。

我通过 cmd 登录,使用 ftp 命令。

PL 帮助。

这是服务器代码:

import os
import sqlite3
from pyftpdlib import ftpserver


def main():

    authorizer = ftpserver.DummyAuthorizer()

    ftp_auth_table="H:\\ftp_auth_table1.db"
    connection=sqlite3.connect(ftp_auth_table,isolation_level=None)
    cursor=connection.cursor()
    cursor.execute('''SELECT * FROM ftp_auth_table1''')
    entry=cursor.fetchall()
    # change os.gtcwd() with ftp_actv_dir
    for x in entry:
        authorizer.add_user(x[1], x[2], "H:/MS EVERYTHING", perm='elradfmwM')


    # Instantiate FTP handler class
    handler = ftpserver.FTPHandler
    handler.authorizer = authorizer


    handler.banner = "pyftpdlib %s based ftpd ready." %ftpserver.__ver__


    address = ('127.0.0.1', 21)
    ftpd = ftpserver.FTPServer(address, handler)

    ftpd.max_cons = 256
    ftpd.max_cons_per_ip = 5

    # start ftp server
    ftpd.serve_forever()

if __name__ == '__main__':
    main()

【问题讨论】:

我怀疑authorizer.add_user 中的主目录让客户感到困惑,空间是出了名的麻烦。如code.google.com/p/pyftpdlib/#Quick_start 所示提供您获得的服务器跟踪会有所帮助。 @msw :它有帮助,它终于工作了!谢谢 @msw :你说得对,问题是由于“MS EVERYTHING”之间的空格引起的。 【参考方案1】:

我绝对有信心地预测,您会发现问题出在“MS EVERYTHING”之间。

【讨论】:

以上是关于python ftp 服务器显示“150 文件状态正常。即将打开数据连接。”啥都不做的主要内容,如果未能解决你的问题,请参考以下文章

FTP错误代码列表

FTP响应码

FTP常用错误代码解释,ftp反馈码含义

解决python fs(filesystem)库在连接FTP服务器时无法显示文件目录的问题

python 搭建http服务器和ftp服务器

Python 程序:ftp