我目前正在使用单行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
我不确定我写错了或是否错误地调用了服务器。
答案 0 :(得分:2)
您的代码看起来没问题,并且根据您对问题的描述(在WinSCP和扭曲的库中遇到它)我会猜测问题出在服务器端。
使用http://en.wikipedia.org/wiki/List_of_FTP_server_return_codes作为参考
错误550和错误ftplib.error_perm会暗示您的用户可能没有对该位置的写入权限