pyftpdlib 创建ftpserver
2019独角兽企业重金招聘Python工程师标准>>>
Check out the FTP examples with twisted
- http://twistedmatrix.com/documents/current/core/examples/#auto8
Also a simple implementation: ftpdrop.py
- http://www.mythi.cx/python/
I can recommend pyftpdlib hosted at Google Code
Example:
from pyftpdlib.authorizers import DummyAuthorizer
from pyftpdlib.handlers import FTPHandler
from pyftpdlib.servers import FTPServerauthorizer = DummyAuthorizer()
authorizer.add_user("user", "12345", "/home/giampaolo", perm="elradfmw")
authorizer.add_anonymous("/home/nobody")handler = FTPHandler
handler.authorizer = authorizerserver = FTPServer(("127.0.0.1", 21), handler)
server.serve_forever()[I 13-02-19 10:55:42] >>> starting FTP server on 127.0.0.1:21 <<<
开始有意识做一些项目。据我了解,python现在更多的是用于自动化运维方面,例如做一些服务器上审计堡垒机,分布式监控,还有做web的后台开发。
今天想在实验室搭建一个ftp服务器,用来分享一些资料,于是就想到了利用python来进行开发。
ftp服务器的本质还是利用socket编程来实现,只不过遵循特定的协议而已,我查了一下协议是RFC959。
当然为了不重复造轮子,先看看有没有开源的lib,百度一下找到了pyftpdlib这个库,查看了一下这个库,发现代码量并不大,之后的博客打算进行源码分析。
不过现在当然是快速的使用。
首先当然是安装pyftpdlib,学过python的肯定知道使用 pip install pyftpdlib来安装。然后看了一些这个库的说明文档,就可以写代码了,也就15行左右。
我使用的工具是pycharm,下面把代码附在下面有详细的注释。
#coding:utf-8from pyftpdlib.authorizers import DummyAuthorizerfrom pyftpdlib.handlers import FTPHandlerfrom pyftpdlib.servers import FTPServer#新建一个用户组authorizer = DummyAuthorizer()#将用户名,密码,指定目录,权限 添加到里面authorizer.add_user("fan", "root", "D:/", perm="elr")#adfmw#这个是添加匿名用户,任何人都可以访问,如果去掉的话,需要输入用户名和密码,可以自己尝试authorizer.add_anonymous("D:/")handler = FTPHandlerhandler.authorizer = authorizer#开启服务器server = FTPServer(("127.0.0.1", 21), handler)server.serve_forever()
然后将程序运行起来,接下来看一下效果,在浏览器上ftp://localhost/
服务器上就不用这么麻烦配置了。太爽了
#coding:utf-8
from pyftpdlib.authorizers import DummyAuthorizer
from pyftpdlib.handlers import FTPHandler
from pyftpdlib.servers import FTPServerauthorizer = DummyAuthorizer()
authorizer.add_user("admin", "12345", "d:/360Downloads", perm="elradfmwM")handler = FTPHandler
handler.authorizer = authorizerserver = FTPServer(("0.0.0.0", 21), handler)
server.serve_forever()
转载于:https://my.oschina.net/mickelfeng/blog/897703
pyftpdlib 创建ftpserver相关推荐
- iOS客户端开启FTP,其他设备访问手机本地文件操作实现
iOS客户端开启FTP,其他设备访问手机本地文件操作实现 因为项目需要,需要在手机端搭建FTP服务,让其他设备来访问手机某个路径文件夹下边的文件,实现下载功能. 主要实现借助第三方库XMFTPServ ...
- 怎么建立FTP服务器?
根据我所知道的回答一下这个问题. ftp服务器常用于局域网内网共享数据使用,当然internet上也有一些ftp服务器.ftp服务器使用了21端口号.ftp提供文件的上传和下载服务,当然管理员也可以根 ...
- git的详细用法和基础教程
Git 是当前最流行的版本控制程序之一,文本包含了 Git 的一些基本用法 创建 git 仓库 初始化 git 仓库 mkdir project # 创建项目目录 cd project # 进入 ...
- Windows下创建PXE网络安装Linux[Redhat AS5.5]IBM X3650
IBM x3650 M3服务器未配置DVD光驱,但提供了PXE网络方式安装,我们便通过一台普通PC机搭建PXE网络,安装Linux操作系统.由于M3系列的硬盘采用了最新的SATA方式传输,RedHat ...
- python局域网传输文件_Python+pyftpdlib实现局域网文件互传
在同一个局域网的多台电脑,传递文件时可以通过 搭建web服务器,设置目录浏览的方式快速分享.如果上传就比较麻烦了,通过QQ/微信会产生很多文件记录,通过teamviewer太慢,ftp是一个不错的选择 ...
- python3 ftp模块_python3利用pyftpdlib模块启动ftp服务
环境: win7 旗舰版 python @3.6.1 pyftpdlib @1.5.4 python客户端上官网下载:python 安装的时候勾上pip还有add path 环境变量. pyftpdl ...
- 用C语言创建多个用户,实现支持多用户在线的FTP程序(C/S)
1 importjson2 importos3 importshelve4 importstruct5 importsubprocess6 7 from conf importsettings8 fr ...
- Windiws环境安装轻量级文件服务器ftpserver
Windiws环境安装轻量级文件服务器ftpserver 文章目录 1. 在线下载: 2. 解压 3. 以管理员身份运行 4. 启动 5. 浏览器验证 6. 输入账号和口令 7. 创建测试文件 8. ...
- Apache FtpServer配置步骤总结
Apache旗下的FtpServer(免费开源,跨平台,java语言编写)配置步骤总结 1.在windows服务器安装jre,下载jre7,并安装.(java运行环境),经过实验,不必安装jdk. 2 ...
- python3 ftp启动_python3利用pyftpdlib模块启动ftp服务
环境: win7 旗舰版 python @3.6.1 pyftpdlib @1.5.4 python客户端上官网下载:python 安装的时候勾上pip还有add path 环境变量. pyftpdl ...
最新文章
- php自动断词,PHP自动分页、防止英文单词被截段、去除HTML代码
- DOS下处理含特殊字符[如:]的字符串
- 一个月时间整理《深入浅出Node.js》
- Vue自定义指令原来这么简单
- 【网络】c++ socket 学习笔记(一)
- android x86 uc,android x86 固件定制
- 关于nginx unit服务非正常关闭后,无法重新启动问题的处理
- 卸载linux grub rescue,Grub Rescue 修复方法
- Feature部署EventHandler注意事项
- python数学建模|综合评价方法
- python配色_Python数据分析之Seaborn(配色方案)
- and no properties discovered to create BeanSerializer 问题解决
- win10下创建FTP站点
- 解决Win7系统无法睡眠问题
- 初尝scrapy捉取数据保存到mysql
- IDC最新中国BI市场报告,永洪科技等中国厂商领跑
- 攻击JavaWeb应用————8、Server篇(下)
- 初探~对ipa包进行混淆处理
- 谭浩强C++ 第十章
- sun服务器多磁盘配置信息,配置 Solaris iSCSI initiator
热门文章
- 计算机系统的位的描述性定义,计算机系统中,“位”的描述性定义是________。
- java.util.Date中的loe_有趣的widget-日期和时间
- 简单明了的java反射机制
- 计算机音乐怎么调音速,音频实现变声?学会使用Studio One改变音速
- 不同终端通信用c语言实现,采用蓝牙技术的北斗终端通信模块的设计
- 测试空间大数据软件(Hadoop + HBase + GeoWave + GeoServer)
- CS61C Spring 2021笔记
- c语言等差数列试题及其答案,等差数列练习题
- Auto.js:实现蚂蚁森林自动收能量(懒人的高效生活)
- 欧拉线 Euler line