我创建了一个python FTP客户端和一个服务器。我使用python pftpdlib
作为服务器,ftplib
作为客户端。我能够成功启动服务器并通过python客户端连接到服务器。但是,当我需要在服务器中存储文件时,我会收到以下错误。
File "/usr/lib/python2.7/ftplib.py", line 471, in storbinary
conn = self.transfercmd(cmd, rest)
File "/usr/lib/python2.7/ftplib.py", line 376, in transfercmd
return self.ntransfercmd(cmd, rest)[0]
File "/usr/lib/python2.7/ftplib.py", line 339, in ntransfercmd
resp = self.sendcmd(cmd)
File "/usr/lib/python2.7/ftplib.py", line 249, in sendcmd
return self.getresp()
File "/usr/lib/python2.7/ftplib.py", line 224, in getresp
raise error_perm, resp
ftplib.error_perm: 550 Not enough privileges.
以下是我服务器的来源
from pyftpdlib.authorizers import DummyAuthorizer
from pyftpdlib.handlers import FTPHandler
from pyftpdlib.servers import FTPServer
authorizer = DummyAuthorizer()
authorizer.add_anonymous("/home/deepal/anonymous")
handler = FTPHandler
handler.authorizer = authorizer
handler.banner = "Server Ready.."
address = ("",21)
server = FTPServer(address, handler)
server.max_cons = 10
server.serve_forever()
以下是客户。
from ftplib import FTP
hostname = sys.argv[2]
ftp = FTP(hostname)
ftp.login()
filepath = "/home/deepal/Desktop/infile"
localfile = open(filepath,"rb")
ftp.storbinary("STOR "+str(os.path.basename),localfile)
我需要匿名将文件传输到服务器。任何人都可以帮助我指出我的代码有什么问题导致上述错误吗?是不是可以用这种方式匿名存储文件?
谢谢。
答案 0 :(得分:4)
我自己解决了。我需要为匿名用户提供适当的权限。改变行,
authorizer.add_anonymous("/home/deepal/anonymous")
到
authorizer.add_anonymous("/home/deepal/anonymous", perm='elradfmwM')
的工作。