Python搭建ftp服务器两种方法介绍

1,179 阅读2分钟

一、Python一秒搭建ftp服务器,在局域网共享文件

一行代码开启共享文件

Python自带了一个HTTP Server,可以使用这个模块用一行代码完成文件的局域网共享。

首先进入需要设置的http服务器目录 (如电脑路径:F:\webfiles) ,即进入到该目录下,然后:

python -m http.server 8080

用8080的端口启动服务,最终的浏览器打开即可下载文件。

二、安装第三方模块实现

pip install pyftpdlib

1、安装后简单web使用

python -m pyftpdlib -p 8081
### 可选参数

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

浏览器打开 ftp://127.0.0.1:8081/

2、高级使用,可以使用ftp客户端打开

from pyftpdlib.authorizers import DummyAuthorizer
from pyftpdlib.handlers import FTPHandler
from pyftpdlib.servers import FTPServer
 
# 实例化DummyAuthorizer来创建ftp用户
authorizer = DummyAuthorizer()
# 参数:用户名,密码,目录,权限
authorizer.add_user('user', '12345', 'F:/PN5', perm='elradfmwMT')
# 匿名登录
# authorizer.add_anonymous('/home/nobody')
 
handler = FTPHandler
handler.authorizer = authorizer
 
# 参数:IP,端口,handler
server = FTPServer(('0.0.0.0', 21), handler)
server.serve_forever()


#可以使用xftp访问了

注: 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命令) 参考 Pyftpdlib文档:pyftpdlib.readthedocs.io/en/latest/i…