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相关推荐

  1. iOS客户端开启FTP,其他设备访问手机本地文件操作实现

    iOS客户端开启FTP,其他设备访问手机本地文件操作实现 因为项目需要,需要在手机端搭建FTP服务,让其他设备来访问手机某个路径文件夹下边的文件,实现下载功能. 主要实现借助第三方库XMFTPServ ...

  2. 怎么建立FTP服务器?

    根据我所知道的回答一下这个问题. ftp服务器常用于局域网内网共享数据使用,当然internet上也有一些ftp服务器.ftp服务器使用了21端口号.ftp提供文件的上传和下载服务,当然管理员也可以根 ...

  3. git的详细用法和基础教程

    Git 是当前最流行的版本控制程序之一,文本包含了 Git 的一些基本用法 创建 git 仓库 初始化 git 仓库 mkdir project  # 创建项目目录  cd project  # 进入 ...

  4. Windows下创建PXE网络安装Linux[Redhat AS5.5]IBM X3650

    IBM x3650 M3服务器未配置DVD光驱,但提供了PXE网络方式安装,我们便通过一台普通PC机搭建PXE网络,安装Linux操作系统.由于M3系列的硬盘采用了最新的SATA方式传输,RedHat ...

  5. python局域网传输文件_Python+pyftpdlib实现局域网文件互传

    在同一个局域网的多台电脑,传递文件时可以通过 搭建web服务器,设置目录浏览的方式快速分享.如果上传就比较麻烦了,通过QQ/微信会产生很多文件记录,通过teamviewer太慢,ftp是一个不错的选择 ...

  6. python3 ftp模块_python3利用pyftpdlib模块启动ftp服务

    环境: win7 旗舰版 python @3.6.1 pyftpdlib @1.5.4 python客户端上官网下载:python 安装的时候勾上pip还有add path 环境变量. pyftpdl ...

  7. 用C语言创建多个用户,实现支持多用户在线的FTP程序(C/S)

    1 importjson2 importos3 importshelve4 importstruct5 importsubprocess6 7 from conf importsettings8 fr ...

  8. Windiws环境安装轻量级文件服务器ftpserver

    Windiws环境安装轻量级文件服务器ftpserver 文章目录 1. 在线下载: 2. 解压 3. 以管理员身份运行 4. 启动 5. 浏览器验证 6. 输入账号和口令 7. 创建测试文件 8. ...

  9. Apache FtpServer配置步骤总结

    Apache旗下的FtpServer(免费开源,跨平台,java语言编写)配置步骤总结 1.在windows服务器安装jre,下载jre7,并安装.(java运行环境),经过实验,不必安装jdk. 2 ...

  10. python3 ftp启动_python3利用pyftpdlib模块启动ftp服务

    环境: win7 旗舰版 python @3.6.1 pyftpdlib @1.5.4 python客户端上官网下载:python 安装的时候勾上pip还有add path 环境变量. pyftpdl ...

最新文章

  1. php自动断词,PHP自动分页、防止英文单词被截段、去除HTML代码
  2. DOS下处理含特殊字符[如:]的字符串
  3. 一个月时间整理《深入浅出Node.js》
  4. Vue自定义指令原来这么简单
  5. 【网络】c++ socket 学习笔记(一)
  6. android x86 uc,android x86 固件定制
  7. 关于nginx unit服务非正常关闭后,无法重新启动问题的处理
  8. 卸载linux grub rescue,Grub Rescue 修复方法
  9. Feature部署EventHandler注意事项
  10. python数学建模|综合评价方法
  11. python配色_Python数据分析之Seaborn(配色方案)
  12. and no properties discovered to create BeanSerializer 问题解决
  13. win10下创建FTP站点
  14. 解决Win7系统无法睡眠问题
  15. 初尝scrapy捉取数据保存到mysql
  16. IDC最新中国BI市场报告,永洪科技等中国厂商领跑
  17. 攻击JavaWeb应用————8、Server篇(下)
  18. 初探~对ipa包进行混淆处理
  19. 谭浩强C++ 第十章
  20. sun服务器多磁盘配置信息,配置 Solaris iSCSI initiator

热门文章

  1. 计算机系统的位的描述性定义,计算机系统中,“位”的描述性定义是________。
  2. java.util.Date中的loe_有趣的widget-日期和时间
  3. 简单明了的java反射机制
  4. 计算机音乐怎么调音速,音频实现变声?学会使用Studio One改变音速
  5. 不同终端通信用c语言实现,采用蓝牙技术的北斗终端通信模块的设计
  6. 测试空间大数据软件(Hadoop + HBase + GeoWave + GeoServer)
  7. CS61C Spring 2021笔记
  8. c语言等差数列试题及其答案,等差数列练习题
  9. Auto.js:实现蚂蚁森林自动收能量(懒人的高效生活)
  10. 欧拉线 Euler line