1 from pyftpdlib.authorizers import DummyAuthorizer 2 from pyftpdlib.handlers import FTPHandler,ThrottledDTPHandler 3 from pyftpdlib.servers import FTPServer 4 from pyftpdlib.log import LogFormatter 5 import logging 6 7 #记录日志,这里既输出到屏幕又输出到文件,方便日志查看: 8 logger = logging.getLogger() 9 logger.setLevel(logging.INFO) 10 ch = logging.StreamHandler() 11 fh = logging.FileHandler(filename='Myftpserver.log',encoding='utf-8') 12 ch.setFormatter(LogFormatter()) 13 fh.setFormatter(LogFormatter()) 14 logger.addHandler(ch) #将日志输出至屏幕 15 logger.addHandler(fh) #将日志输出至文件 16 17 #实例化虚拟用户,这是FTP验证首要条件 18 authorizer = DummyAuthorizer() 19 #添加用户权限和路径,括号内的参数是(用户名,密码,用户目录,权限),可以为不同的用户添加不同的目录和权限 20 authorizer.add_user("user","123456789","d:/",perm="elradfmw") 21 #添加匿名用户,只需要路径 22 #authorizer.add_anonymous("d:/") 23 #初始化FTP句柄 24 handler = FTPHandler 25 handler.authorizer = authorizer 26 #添加被动端口范围 27 handler.passive_ports = range(2000,2333) 28 #下载上传速度设置 29 dtp_handler = ThrottledDTPHandler 30 dtp_handler.read_limit = 300 * 1024 #300kb/s 31 dtp_handler.write_limit = 300 * 1024 32 handler.dtp_handler = dtp_handler 33 #监听IP和端口,Linux需要root用户才能使用21端口 34 server = FTPServer(("0.0.0.0",21),handler) 35 #最大连接数 36 server.max_cons = 160 37 server.max_cons_per_ip = 20 38 #开始服务,自带日志打印信息 39 server.serve_forever()
标签:FTP,authorizer,logging,Python,SERVER,handler,import,日志,dtp From: https://www.cnblogs.com/donfag/p/17706790.html