当前位置 : 主页 > 编程语言 > python >

基于python搭建FTP服务

来源:互联网 收集:自由互联 发布时间:2022-06-15
使用python搭建FTP服务非常容易,且非常稳定,更重要的是可以实现一些精细化的控制,例如精细的访问权限配置,详细的日志记录等工作 这里是使用了pyftpdlib模块 1. 安装 pip install pyf

  使用python搭建FTP服务非常容易,且非常稳定,更重要的是可以实现一些精细化的控制,例如精细的访问权限配置,详细的日志记录等工作

  这里是使用了pyftpdlib模块

1. 安装

pip install pyftpdlib

 

2. 使用

 快速搭建一个简单的FTP服务:

python -m pyftpdlib -p 21

即可在执行命令所在的目录下建立一个端口为21的供下载文件的FTP服务

 

搭建一个具有访问权限的FTP服务

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

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('lanlang', '123456', "./files", perm="elradfmw")
# 添加匿名用户,只添加路径
authorizer.add_anonymous("./files")

handler = FTPHandler
handler.authorizer = authorizer
# 添加被动端口范围
handler.passive_ports = range(2000, 2333)
# 下载上传速度设置
dtp_handler = ThrottledDTPHandler
dtp_handler.read_limit = 300 * 1024 # 300kb/s
dtp_handler.write_limit = 300 * 1024 # 300kb/s
handler.dtp_handler = dtp_handler
# 监听IP和端口,Linux中需要root用户才能使用21端口
server = FTPServer(('0.0.0.0', 21), handler)
# 最大连接数
server.max_cons = 150
server.max_cons_per_ip = 15

server.serve_forever()

 

 权限说明:

读权限:

代码 

说明

e 

改变文件目录

l 

列出文件

r

从服务器接收文件

 

 写权限:

M

文件传输模式(通过FTP设置文件权限)

a

文件上传

d

删除文件

f

文件重命名

m

创建文件

w

写权限

 


上一篇:python与pip
下一篇:没有了
网友评论