Python代码使用 Pyftpdlib实现FTP服务器功能


Posted in Python onJuly 22, 2019

当你想快速共享一个目录的时候,这是特别有用的,只需要1行代码即可实现。

FTP 服务器,在此之前我都是使用Linux的vsftpd软件包来搭建FTP服务器的,现在发现了利用pyftpdlib可以更加简单的方法即可实现FTP服务器的功能。

环境要求

  • Python 2.7
  • Windows / Linux

环境搭建

pip install pyftpdlib

一行代码实现FTP服务器

通过Python的-m选项作为一个简单的独立服务器来运行,当你想快速共享一个目录的时候,这是特别有用的。
在需要共享的目录下执行如下命令即可把当前目录共享出去(匿名登录)

python -m pyftpdlib

至此一个简单的FTP服务器已经搭建完成,访问 ftp://127.0.0.1:2121 即可

(默认IP为 127.0.0.1 、端口为 2121 )

效果图

Python代码使用 Pyftpdlib实现FTP服务器功能

可选参数

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

简单示例

上述的一行命令已经可以实现一个简单的FTP服务器,但是要搭建一个功能强大完善的FTP服务所涉及到的配置较多,这时需要使用Pyftpdlib提供的 API 来编写。如下是一个简单的示例

from pyftpdlib.authorizers import DummyAuthorizer
from pyftpdlib.handlers import FTPHandler
from pyftpdlib.servers import FTPServer

# 实例化DummyAuthorizer来创建ftp用户
authorizer = DummyAuthorizer()
# 参数:用户名,密码,目录,权限
authorizer.add_user('user', '12345', '/opt/pyftp/test', perm='elradfmwMT')
# 匿名登录
# authorizer.add_anonymous('/home/nobody')
handler = FTPHandler
handler.authorizer = authorizer
# 参数:IP,端口,handler
server = FTPServer(('192.168.56.100', 21), handler)
server.serve_forever()

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文档:http://pyftpdlib.readthedocs.io/en/latest/index.html

总结

以上所述是小编给大家介绍的Python代码使用 Pyftpdlib实现FTP服务器功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
Python中的pack和unpack的使用
Mar 12 Python
pygame游戏之旅 添加键盘按键的方法
Nov 20 Python
Python函数装饰器常见使用方法实例详解
Mar 30 Python
python对矩阵进行转置的2种处理方法
Jul 17 Python
Django 查询数据库并返回页面的例子
Aug 12 Python
Python数据库小程序源代码
Sep 15 Python
Python如何读写二进制数组数据
Aug 01 Python
解决Python3.7.0 SSL低版本导致Pip无法使用问题
Sep 03 Python
python 模块导入问题汇总
Feb 01 Python
Python爬虫爬取ts碎片视频+验证码登录功能
Feb 22 Python
Python的这些库,你知道多少?
Jun 09 Python
用Python生成会跳舞的美女
Jan 18 Python
超简单的Python HTTP服务
Jul 22 #Python
对python 中re.sub,replace(),strip()的区别详解
Jul 22 #Python
django框架CSRF防护原理与用法分析
Jul 22 #Python
全面了解django的缓存机制及使用方法
Jul 22 #Python
python logging模块书写日志以及日志分割详解
Jul 22 #Python
使用 Python 快速实现 HTTP 和 FTP 服务器的方法
Jul 22 #Python
Django框架静态文件使用/中间件/禁用ip功能实例详解
Jul 22 #Python
You might like
PHP页面中文乱码分析
2013/10/29 PHP
Javascript 面向对象 命名空间
2010/05/13 Javascript
常见效果实现之返回顶部(结合淡入、淡出、减速滚动)
2012/01/04 Javascript
Javascript delete 引用类型对象
2013/11/01 Javascript
JavaScript实现的GBK、UTF8字符串实际长度计算函数
2014/08/27 Javascript
sogou地图API用法实例教程
2014/09/11 Javascript
AngularJS教程之简单应用程序示例
2016/08/16 Javascript
基于AngularJS实现iOS8自带的计算器
2016/09/12 Javascript
JS键盘版计算器的制作方法
2016/12/03 Javascript
Node连接mysql数据库方法介绍
2017/02/07 Javascript
Vuex 使用 v-model 配合 state的方法
2018/11/13 Javascript
VUE 实现动态给对象增加属性,并触发视图更新操作示例
2019/11/29 Javascript
微信小程序 wx.getUserInfo引导用户授权问题实例分析
2020/03/09 Javascript
jQuery实现简单飞机大战
2020/07/05 jQuery
在VUE中使用lodash的debounce和throttle操作
2020/11/09 Javascript
Python中的index()方法使用教程
2015/05/18 Python
Python中操作符重载用法分析
2016/04/29 Python
详谈Python中列表list,元祖tuple和numpy中的array区别
2018/04/18 Python
python调用Matplotlib绘制分布点并且添加标签
2018/05/31 Python
python 格式化输出百分号的方法
2019/01/20 Python
python在openstreetmap地图上绘制路线图的实现
2019/07/11 Python
Python OpenCV实现测量图片物体宽度
2020/05/27 Python
基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解
2020/06/08 Python
英国网络托管和域名领导者:Web Hosting UK
2017/10/15 全球购物
Right-on官方网站:日本知名的休闲服装品牌
2019/07/12 全球购物
爱岗敬业演讲稿范文
2014/01/14 职场文书
房产委托公证书样本
2014/04/04 职场文书
巾帼建功标兵事迹材料
2014/05/11 职场文书
社会实践的活动方案
2014/08/22 职场文书
表扬稿格式范文
2015/01/16 职场文书
初中生思想道德自我评价
2015/03/09 职场文书
学校工会工作总结2015
2015/05/19 职场文书
餐厅服务员管理制度
2015/08/05 职场文书
教师研修随笔感言
2015/11/18 职场文书
浅谈:电影《孔子》观后感(范文)
2019/10/14 职场文书
超详细教你怎么升级Mysql的版本
2021/05/19 MySQL