python开发ftp服务器

学习了大约快一个月的python,现在开始有意识做一些项目。

据我了解,python现在更多的是用于自动化运维方面,例如做一些服务器上审计堡垒机,分布式监控,还有做web的后台开发。

今天想在实验室搭建一个ftp服务器,用来分享一些资料,于是就想到了利用python来进行开发。

ftp服务器的本质还是利用socket编程来实现,只不过遵循特定的协议而已,我查了一下协议是RFC959。

当然为了不重复造轮子,先看看有没有开源的lib,百度一下找到了pyftpdlib这个库,查看了一下这个库,发现代码量并不大,之后的博客打算进行源码分析。

不过现在当然是快速的使用。

  首先当然是安装pyftpdlib,学过python的肯定知道使用 pip install pyftpdlib来安装。然后看了一些这个库的说明文档,就可以写代码了,也就15行左右。

我使用的工具是pycharm,下面把代码附在下面有详细的注释。

#coding:utf-8

from pyftpdlib.authorizers import DummyAuthorizer

from pyftpdlib.handlers import FTPHandler

from pyftpdlib.servers import FTPServer

#新建一个用户组

authorizer = DummyAuthorizer()

#将用户名,密码,指定目录,权限 添加到里面

authorizer.add_user("fan", "root", "D:/", perm="elr")#adfmw

#这个是添加匿名用户,任何人都可以访问,如果去掉的话,需要输入用户名和密码,可以自己尝试

authorizer.add_anonymous("D:/")

handler = FTPHandler

handler.authorizer = authorizer

#开启服务器

server = FTPServer(("127.0.0.1", 21), handler)

server.serve_forever()

然后将程序运行起来,接下来看一下效果,在浏览器上ftp://localhost/

nice,只要大家在同一个局域网之内就可以分享了.

今天就到此为止,之后有时间,会对这个库进行源码分析,敬请期待

如果觉得还不错,记得打赏呦。

原文发布于微信公众号 - 七夜安全博客(qiye_safe)

原文发表时间:2016-03-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大内老A

The .NET of Tomorrow

Ed Charbeneau(http://developer.telerik.com/featured/the-net-of-tomorrow/) Exciti...

39410
来自专栏C#

DotNet加密方式解析--非对称加密

    新年新气象,也希望新年可以挣大钱。不管今年年底会不会跟去年一样,满怀抱负却又壮志未酬。(不过没事,我已为各位卜上一卦,卦象显示各位都能挣钱...)...

6028
来自专栏杨龙飞前端

scrollto 到指定位置

2974
来自专栏一个爱瞎折腾的程序猿

sqlserver使用存储过程跟踪SQL

USE [master] GO /****** Object: StoredProcedure [dbo].[sp_perfworkload_trace_s...

2980
来自专栏闻道于事

js登录滑动验证,不滑动无法登陆

js的判断这里是根据滑块的位置进行判断,应该是用一个flag判断 <%@ page language="java" contentType="text/html...

8848
来自专栏张善友的专栏

Silverlight + Model-View-ViewModel (MVVM)

     早在2005年,John Gossman写了一篇关于Model-View-ViewModel模式的博文,这种模式被他所在的微软的项目组用来创建Expr...

3318
来自专栏张善友的专栏

Mix 10 上的asp.net mvc 2的相关Session

Beyond File | New Company: From Cheesy Sample to Social Platform Scott Hansel...

2787
来自专栏跟着阿笨一起玩NET

c#实现打印功能

3782
来自专栏转载gongluck的CSDN博客

cocos2dx 打灰机

#include "GamePlane.h" #include "PlaneSprite.h" #include "BulletNode.h" #include...

7306
来自专栏Ceph对象存储方案

Luminous版本PG 分布调优

Luminous版本开始新增的balancer模块在PG分布优化方面效果非常明显,操作也非常简便,强烈推荐各位在集群上线之前进行这一操作,能够极大的提升整个集群...

3685

扫码关注云+社区