【问题标题】:Cannot write to Twisted FTP server无法写入 Twisted FTP 服务器
【发布时间】:2013-08-20 15:37:47
【问题描述】:

我目前正在使用单线Twisted FTP服务器在机器之间来回传输文件:

twistd -n ftp

这适用于从服务器下载文件。但是,当我尝试使用以下方式写入服务器时:

with open('testFile.bmp', 'rb') as f:
    ftp.storbinary('STOR ' + 'testFile.bmp', f)
with open('surrogate.py', 'rb') as f:
    ftp.storbinary('STOR ' + 'surrogateCode.py', f)

我收到错误:

Traceback (most recent call last):
  File "client.py", line 13, in <module>
    ftp.storbinary('STOR ' + 'testFile.bmp', f)
  File "/usr/lib/python2.7/ftplib.py", line 461, in storbinary
    conn = self.transfercmd(cmd, rest)
  File "/usr/lib/python2.7/ftplib.py", line 368, in transfercmd
    return self.ntransfercmd(cmd, rest)[0]
  File "/usr/lib/python2.7/ftplib.py", line 331, in ntransfercmd
    resp = self.sendcmd(cmd)
  File "/usr/lib/python2.7/ftplib.py", line 244, in sendcmd
    return self.getresp()
  File "/usr/lib/python2.7/ftplib.py", line 219, in getresp
    raise error_perm, resp
ftplib.error_perm: 550 Requested action not taken: internal server error

我用 WinSCP FTP 客户端试了一下,收到这个错误:

Copying files to remote side failed.
Requested action not taken: internal server error

我不确定我是写错了还是调用了服务器不正确。

【问题讨论】:

    标签: python ftp twisted


    【解决方案1】:

    您的代码看起来不错,根据您对问题的描述(在 WinSCP 和扭曲库中遇到它),我冒险猜测问题出在服务器端。

    使用http://en.wikipedia.org/wiki/List_of_FTP_server_return_codes 作为参考

    错误 550 和错误 ftplib.error_perm 表明您所在的用户可能没有对该位置的写入权限

    【讨论】: