手把手教你用1行Python代码实现FTP服务器 — Pyftpdlib

当你想快速共享一个目录的时候,这是特别有用的,只需要1行代码即可实现。

FTP 服务器,在此之前我都是使用Linux的vsftpd软件包来搭建FTP服务器的,现在发现了利用pyftpdlib可以更加简单的方法即可实现FTP服务器的功能。

环境要求

  • Python 2.7

环境搭建

pip install pyftpdlib

一行代码实现FTP服务器

通过Python的 -m
选项作为一个简单的独立服务器来运行,当你想快速共享一个目录的时候,这是特别有用的。

在需要共享的目录下执行如下命令即可把当前目录共享出去(匿名登录)

至此一个简单的FTP服务器已经搭建完成,访问 ftp://0.0.0.0:2121
即可

(默认IP为 0.0.0.0
、端口为 2121

python -m pyftpdlib

可选参数

  • -i
    指定IP地址(默认为 0.0.0.0
  • -p
    指定端口(默认为 2121
  • -w
    写权限(默认为只读)
  • -d
    指定目录 (默认为当前目录)
  • -u
    指定用户名登录
  • -P
    设置登录密码

实例

from pyftpdlib.authorizers import DummyAuthorizer
from pyftpdlib.handlers import FTPHandler
from pyftpdlib.servers import FTPServer

# 实例化DummyAuthorizer来创建ftp用户
authorizer = DummyAuthorizer()
# 参数:用户名,密码,目录,权限
authorizer.add_user('user', '12345', '/opt/pyftp/test', perm='elradfmwMT')
# 匿名登录
# authorizer.add_anonymous('/home/nobody')

handler = FTPHandler
handler.authorizer = authorizer

# 参数:IP,端口,handler
server = FTPServer(('192.168.56.100', 21), handler)
server.serve_forever()

perm权限选项

读取权限:

  • "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命令)

参考

Pyftpdlib文档: http://pyftpdlib.readthedocs.io/en/latest/index.html

简书责编内容来自:简书 (源链) | 更多关于

阅读提示:酷辣虫无法对本内容的真实性提供任何保证,请自行验证并承担相关的风险与后果!
本站遵循[CC BY-NC-SA 4.0]。如您有版权、意见投诉等问题,请通过eMail联系我们处理。
酷辣虫 » 综合编程 » 手把手教你用1行Python代码实现FTP服务器 — Pyftpdlib

喜欢 (0)or分享给?

专业 x 专注 x 聚合 x 分享 CC BY-NC-SA 4.0

使用声明 | 英豪名录