2

我目前正在使用单线 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

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

4

1 回答 1

2

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

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

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

于 2013-08-20T15:51:54.223 回答