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 条评论
登录 后参与评论

相关文章

来自专栏云计算

如何安装Git并克隆GitHub存储库

GitHub是一个允许开发人员使用Git版本控制系统进行协作的网站。通过Git和GitHub,来自世界各地的程序员可以在有组织的最新流程中分享想法和代码。

1411
来自专栏嵌入式程序猿

手把手教你在树莓派上搭建web服务器

如何在你的树莓派上搭建一个web服务器呢?因为在搭建服务器的时候需要安装更新软件,但是大家应该知道树莓派默认镜像源在英国,从国内访问会很慢,所以需要更改镜像源到...

4126
来自专栏章鱼的慢慢技术路

Linux操作_常用命令操作练习

1334
来自专栏哲学驱动设计

版本分支管理标准

2142
来自专栏java架构师

Hadoop学习4--安装Hadoop

首先献上Hadoop下载地址: http://apache.fayea.com/hadoop/core/ 选择相应版本,点一下,直接进行http下载了。  对原...

2619
来自专栏LeoXu的博客

Eclipse中做Android开发LogCat的使用

LogCat是Eclipse里面做Android开发的工具包ADT中的一个工具,用来查看和过滤Android日志系统的输出。

741
来自专栏编码小白

ofbiz连接mysql并创建独立数据库

         Ofbiz:数据库移植mysql并创建自己的mysql          Ofbiz原生数据库是derby,而作为开发使用,其就不能满足我们需...

2845
来自专栏康怀帅的专栏

PHP7 编译安装

本文介绍了手动编译安装 PHP 的具体步骤。 修订记录 Debian9 Ubuntu17.04 出现错误请详细查看后边说明(PHP 7.1.9 不会报错了)。出...

3554
来自专栏十月梦想

node读取html文件

node和Apache是没有web容器的,node的目录下的同级文件是无法使用/filename进行访问的,因为node没有根目录门也没用web容器!

712
来自专栏章鱼的慢慢技术路

Linux操作_常用命令操作练习

1892

扫码关注云+社区