一行代码搞定 FTP 服务
环境搭建:
python
windows/linux
pip install pyftpdlib (安装失败请到这里下载:https://pypi.python.org/pypi/pyftpdlib/)
一行代码搞定的事:
到你打算分享的目录下执行,python -m pyftpdlib
然后我们来看一下,至此一个简单的FTP服务器已经搭建完成,访问 ftp://127.0.0.1:2121即可(默认IP为 127.0.0.1 、端口为 2121 )
除上之外,还有一些可选参数:
i 指定IP地址(默认为本机的IP地址)
p 指定端口(默认为2121)
w 写权限(默认为只读)
d 指定目录 (默认为当前目录)
u 指定用户名登录
P 设置登录密码
如果要在局域网内搭建一个FTP服务:
from pyftpdlib.authorizers import DummyAuthorizer
from pyftpdlib.handlers import FTPHandler
from pyftpdlib.servers import FTPServer
# 实例化DummyAuthorizer来创建ftp用户
authorizer = DummyAuthorizer()
# 参数:用户名,密码,目录,权限
authorizer.add_user('user', '12345', 'E:\', perm='elradfmwMT')
# 匿名登录
# authorizer.add_anonymous('/home/nobody')
handler = FTPHandler
handler.authorizer = authorizer
# 参数:IP,端口,handler
server = FTPServer(('0.0.0.0', 21), handler)
#设置为0.0.0.0为本机的IP地址
server.serve_forever()
读取权限:
"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命令)
参考文档:
http://pyftpdlib.readthedocs.io/en/latest/index.html
http://mp.weixin.qq.com/s/IIi9mBGipeia-8M8WT0_nw
转载于:https://www.cnblogs.com/itfat/p/8275052.html
一行代码搞定 FTP 服务相关推荐
- table中加表单元素每行怎么验证_Validform 一行代码搞定整站的表单验证 - 文章
Validform 一行代码搞定整站的表单验证,为什么能如此方便?插件的核心思想就是把所有的验证条件及验证提示信息绑定到每个表单元素,让验证代码在执行时只是核对表单下各元素的值是否跟绑定的验证条件相符 ...
- WPF使用Linq 一行代码搞定数据绑定
首先设置好DataGrid控件的相关属性,注意XAML代码文件中的列绑定要和源数据的列名一致,如: Binding="{Binding No}" 详细设置如下: this.data ...
- 开源作品ThinkJDBC—一行代码搞定数据库操作
1 简介 ThinkJD,又名ThinkJDBC,一个简洁而强大的开源JDBC操作库.你可以使用Java像ThinkPHP框架的M方法一样,一行代码搞定数据库操作.ThinkJD会自动管理数据库连接, ...
- 成功解决numpy.ndarray格式类型转数据为list格式数据带有中括号(一行代码搞定!)
成功解决numpy.ndarray格式类型转数据为list格式数据带有中括号(一行代码搞定!) 目录 解决问题 解决思路 解决方法 解决问题 numpy.ndarray格式类型转数据为list格式数据 ...
- 一行代码搞定 Scrapy 随机 User-Agent 设置
摘要:爬虫过程中的反爬措施非常重要,其中设置随机 User-Agent 是一项重要的反爬措施,Scrapy 中设置随机 UA 的方式有很多种,有的复杂有的简单,本文就对这些方法进行汇总,提供一种只需要 ...
- 【Python】Autoviz: 一行代码搞定数据集探索并可视化
数据集各个特征有什么变化趋势.各个特征之间有何关系,我们可以借助Matplotlib.Seaborn等诸多工具来可视化展示,那么有没有一种工具能一次展示所有的关系了? 本文要介绍的Python工具Au ...
- 一行代码搞定 GitHub 访问徽章
相信对于使用 GitHub 的小伙伴来说,以上 GitHub 徽章(badge)应该都不怎么陌生吧.如果你想快速用起来,找到你想要的徽章代码 ctrl+c & ctrl+v ,再修改对应的 G ...
- SDAutoLayout 一行代码搞定自动布局
SDAutoLayout(一行代码搞定自动布局!) QQ交流群:519489682(已满)497140713 ☆☆ SDAutoLayout 基础版视频教程:http://www.letv.com/p ...
- thinkjdbc 关闭_ThinkJD: ThinkJD,又名ThinkJDBC,一个强大的开源JDBC/ORM操作库,让你尽可能简洁地用一行代码搞定数据库操作。...
1 简介 ThinkJD,又名ThinkJDBC,一个简洁而强大的开源JDBC操作库.你可以使用Java像ThinkPHP框架的M方法一样,一行代码搞定数据库操作.ThinkJD会自动管理数据库连接, ...
最新文章
- MYSQL中如何查看表结构命令_mysql查看表结构命令
- pycharm怎么写yaml_K8S 如何面向 Yaml 编程
- 【Centos 8】【Centos 7】【Docker】 安装 RabbitMQ
- android activity 回调函数,Android Activity的生命周期
- Linux系统下解压缩安装MongoDB
- 李伟山:金融撮合架构
- Spring整合RabbitMQ
- JavaScript学习(七十五)—图解浅拷贝和深拷贝
- 2013-开始新的一年
- jQuery数据与Attr?
- 妙趣横生的算法(C语言实现 第2版)pdf
- 服务器虚拟机怎么安装win7系统教程,虚拟机怎么安装win7系统 虚拟机安装win7系统教程...
- MDK编译报错Error: L6218E: Undefined symbol main (referred from __rtentry2.o)
- 关于cookie的详细讲解
- 设置来电铃声、卡2来电铃声、短信铃声、提示铃声、闹铃铃声
- 【Word】双栏论文尾页文字齐平排版的实现
- 脑肿瘤的影像组学:图像评估、定量特征描述和机器学习方法
- centos 6.7 GRUB配置
- 理解RabbitMQ中的AMQP模型,知乎上已获万赞
- day22~day23初识面向对象
热门文章
- python中dom模块_Python中使用dom模块生成XML文件示例
- pyqt5获取文本框里输入的值_实战PyQt5: 060-输入对话框QInputDialog
- python3.7安装numpy库_python2.7/3.7安装NumPy函数库的一种方法及小心得
- html怎么用ui打开,HTML5教程 如何使用原生UI
- java中什么是类型_什么是Java中基本数据类型?
- 【Mybatis】 mapper XML 文件中使用 collection实现一对多关联
- 微信小程序发布后,真机调用接口失败:ERR_CERT_AUTHORITY_INVALID
- Nutch开发(四)
- access导入链接快还是导入表快_Go 语言设计哲学之十三:理解包导入路径的含义...
- c语言中0到9的as编码c2,(全国计算机等级考试二级笔试样卷VsualBasc语言程序设计.doc...