python——pyftpdlib 快速搭建ftp服务器

python——pyftpdlib 快速搭建ftp服务器

前言

python工具库挺多的,最近想搭建一个ftp服务器,就是分享一下文件而已,功能简单,于是就搜索到了python的工具库——pyftpdlib

安装

pip install pyftpdlib

一行代码使用

python -m pyftpdlib

默认IP为 127.0.0.1 、端口为 2121
参数设置
-i 指定IP地址(默认为本机的IP地址)
-p 指定端口(默认为2121)
-w 写权限(默认为只读)
-d 指定目录 (默认为当前目录)
-u 指定用户名登录
-P 设置登录密码

简单使用

#同时使用pandas读取xlsx文件,配置账号、密码、路径和权限
from pyftpdlib.authorizers import DummyAuthorizer
from pyftpdlib.handlers import FTPHandler
from pyftpdlib.servers import FTPServer
import pandas as pd

#读取用户配置文件,可以用其他格式的文件,请随意
df = pd.read_excel('user.xlsx')

# 实例化DummyAuthorizer来创建ftp用户
authorizer = DummyAuthorizer()
# 参数:用户名,密码,目录,权限
for index,row in df.iterrows():
	authorizer.add_user(row['账户'], row['密码'], row['路径'], perm=row['权限'])
	
#设置一个匿名登录
#authorizer.add_anonymous('/home/nobody')

#创建FTPHanddler实例
handler = FTPHandler
handler.authorizer = authorizer
# 参数:IP,端口,handler
server = FTPServer(('0.0.0.0', 8800), handler)
server.serve_forever()

直接运行即可使用,方便简单,但是Windows应该会遇到中文乱码的情况,最简单粗暴的方法是把filesystems.py和handlers.py文件里面的‘utf8’直接替换为‘gbk’。

perm权限选项

读取权限:

"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命令)

格式就是在 authorizer.add_user(row[‘账户’], row[‘密码’], row[‘路径’], perm=row[‘权限’])里面,perm=‘elradfmwMT’

题外话

python还有一个自带的,可以快速搭建一个http服务器,其实也类似是ftp,可以实现文件共享,一行代码即可搞定,在CMD中输入“python -m http.server 8080”即可开启服务器,可在浏览器下载该目录下的文件,简单粗暴。

上一篇:python-记录文件、excel


下一篇:力扣 面试题 01.08. 零矩阵