使用python搭建一个ftp服务器

使用python搭建一个ftp服务器

  • 使用pyftpdlib模块启动ftp服务器,使用logging来记录日志。日志输出在当前目录的myftpserver.log文件下
  • 使用被动模式的FTP
  • 这里创建了一个xwp账号,一个annoymous账号。
  • 同时对上传下载速度进行了限制,30000KB/s

ftpserver.py

# FTP server

import logging
from pyftpdlib.authorizers import DummyAuthorizer
from pyftpdlib.handlers import FTPHandler, ThrottledDTPHandler
from pyftpdlib.servers import FTPServer
from pyftpdlib.log import LogFormatter

logger = logging.getLogger()
logger.setLevel(logging.INFO)

ch = logging.StreamHandler()
fh = logging.FileHandler(filename="myftpserver.log", encoding='utf-8')
ch.setFormatter(LogFormatter())
fh.setFormatter(LogFormatter())
logger.addHandler(ch)
logger.addHandler(fh)

authorizer = DummyAuthorizer()
authorizer.add_user("xwp", "xwpxwp111", "d:/", perm="elradfmwM")
authorizer.add_anonymous(homedir="d:/")

handler = FTPHandler
handler.authorizer = authorizer
handler.passive_ports = range(2000, 2333)

dtp_handler = ThrottledDTPHandler
dtp_handler.read_limit = 30000 * 1024
dtp_handler.write_limit = 30000 * 1024
handler.dtp_handler = dtp_handler

server = FTPServer(("0.0.0.0", 21), handler)
server.max_cons = 150
server.max_cons_per_ip = 15
server.serve_forever()

后续应该会采用ini配置文件的形式来配置ftp服务器。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
搭建一个FTP服务器,你可以使用Python的`pyftpdlib`库。下面是一个简单的示例代码: ```python from pyftpdlib.authorizers import DummyAuthorizer from pyftpdlib.handlers import FTPHandler from pyftpdlib.servers import FTPServer # 创建一个虚拟用户并指定路径和权限 authorizer = DummyAuthorizer() authorizer.add_user("username", "password", "/path/to/directory", perm="elradfmw") # 所有用户都具有相同的权限 # authorizer.add_anonymous("/path/to/directory") # 创建FTP处理程序并绑定作者 handler = FTPHandler handler.authorizer = authorizer # 监听地址和端口 server = FTPServer(("0.0.0.0", 21), handler) # 开始FTP服务器 server.serve_forever() ``` 在代码中,我们首先导入`pyftpdlib`库的需要的类。然后,我们创建一个`DummyAuthorizer`对象,用于管理FTP用户和权限。使用`add_user()`方法添加一个虚拟用户,指定用户名、密码、用户目录和权限。你也可以使用`add_anonymous()`方法添加匿名用户。 接下来,我们创建一个`FTPHandler`对象,并将`DummyAuthorizer`对象绑定到处理程序。然后,我们指定服务器的监听地址和端口号,创建一个`FTPServer`对象,并将监听地址和处理程序传递给它。 最后,我们调用`serve_forever()`方法开始运行FTP服务器。 请注意,这只是一个简单的示例,实际的FTP服务器可能需要更多的配置和安全性措施。你可以根据实际需求进行详细的配置和定制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值