python搭建ftp_Python之pyftpdlib搭建FTP服务

本文介绍了如何利用Python的pyftpdlib模块搭建FTP服务,包括设置日志记录、添加用户及权限、定义被动端口范围以及限制上传下载速度。详细解释了FTP的权限设置,如读取、写入等操作,并提供了参考文档链接。
摘要由CSDN通过智能技术生成

1.通过pyftpdlib模块搭建服务

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="ftpserver.log",encoding="utf-8")

ch.setFormatter(LogFormatter())

fh.setFormatter(LogFormatter())

#将日志输出到屏幕

logger.addHandler(ch)

#将日志输出到文件

logger.addHandler(fh)

#实例化虚拟用户,这是FTP验证首要条件。

authorizer = DummyAuthorizer()

#添加用户,权限,目录

authorizer.add_user("user","123456","e:Pic",perm="elradfmw")

#匿名用户

#authorizer.add_anonymous("e:Pic")

#初始化ftp句柄

handler = FTPHandler

handler.authorizer = authorizer

#添加被动端口范围

handler.passive_ports = range(2000,2100)

#下载上传速度设置

dtp_handler = ThrottledDTPHandler

dtp_handler.read_limit = 300 * 1024 #300k

dtp_handler.write_limit = 300 * 1024

handler.dtp_handler = dtp_handler

#监听ip和端口,linux需要root用户才能运行21端口

server = FTPServer(("0.0.0.0",21),handler)

#最大连接数

server.max_cons = 100

server.max_cons_per_ip = 10

#开始服务,自带日志打印信息

server.serve_forever()

2.权限解释

读取权限:

“e” =更改目录(CWD,CDUP命令)

“l” =列表文件(LIST,NLST,STAT,MLSD,MLST,SIZE命令)

“r” =从服务器检索文件(RETR命令)

写入权限:

“a” =将数据追加到现有文件(APPE命令)

“d” =删除文件或目录(DELE,RMD命令)

“f” =重命名文件或目录(RNFR,RNTO命令)

“m” =创建目录(MKD命令)

“w” =将文件存储到服务器(STOR,STOU命令)

“M”=更改文件模式/权限(SITE CHMOD命令)

“T”=更改文件修改时间(SITE MFMT命令)

参考文档:https://pyftpdlib.readthedocs.io/en/latest/index.html

「 文章如果对你有帮助,请点个赞哦^^ 」&nbsp

0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值