zoukankan      html  css  js  c++  java
  • 基于python搭建FTP服务

      使用python搭建FTP服务非常容易,且非常稳定,更重要的是可以实现一些精细化的控制,例如精细的访问权限配置,详细的日志记录等工作

      这里是使用了pyftpdlib模块

    1. 安装

    pip install pyftpdlib

    2. 使用

     快速搭建一个简单的FTP服务:

    python -m pyftpdlib -p 21
    
    即可在执行命令所在的目录下建立一个端口为21的供下载文件的FTP服务

    搭建一个具有访问权限的FTP服务

    from pyftpdlib.authorizers import DummyAuthorizer
    from pyftpdlib.handlers import FTPHandler, ThrottledDTPHandler
    from pyftpdlib.servers import FTPServer
    from pyftpdlib.log import LogFormatter
    import logging
    
    logger = logging.getLogger()
    logger.setLevel(logging.INFO)
    ch = logging.StreamHandler()
    fh = logging.FileHandler(filename='myftpserver.log', encoding='utf-8') # 默认追加到日志文件
    ch.setFormatter(LogFormatter())
    fh.setFormatter(LogFormatter())
    logger.addHandler(ch)  # 将日志输出到屏幕
    logger.addHandler(fh)  # 将日志输出至文件
    
    authorizer = DummyAuthorizer()
    # 添加用户权限与路径,参数(用户名,密码,用户目录,权限(见说明)) authorizer.add_user(
    'lanlang', '123456', "./files", perm="elradfmw")
    # 添加匿名用户,只添加路径 authorizer.add_anonymous(
    "./files") handler = FTPHandler handler.authorizer = authorizer
    # 添加被动端口范围 handler.passive_ports
    = range(2000, 2333) # 下载上传速度设置 dtp_handler = ThrottledDTPHandler dtp_handler.read_limit = 300 * 1024 # 300kb/s dtp_handler.write_limit = 300 * 1024 # 300kb/s handler.dtp_handler = dtp_handler # 监听IP和端口,Linux中需要root用户才能使用21端口 server = FTPServer(('0.0.0.0', 21), handler) # 最大连接数 server.max_cons = 150 server.max_cons_per_ip = 15 server.serve_forever()

     权限说明:

    读权限:

    代码  说明
    e  改变文件目录
    l  列出文件
    r 从服务器接收文件

     写权限:

    M 文件传输模式(通过FTP设置文件权限)
    a 文件上传
    d 删除文件
    f 文件重命名
    m 创建文件
    w

    写权限

  • 相关阅读:
    libevent-2.0.so.5 (安装MEMCACHED问题)
    MySQL的show语句大全
    远程客户端连接MysqL数据库太慢解决方案
    用SQL命令查看Mysql数据库大小
    elasticsearch-head安装及启动
    logstash收集IIS日志
    备份并删除7天以前数据
    shell脚本递归压缩实践
    二目运算符 “->”
    关于int main( int argc, char *argv[] )
  • 原文地址:https://www.cnblogs.com/xingxia/p/python_ftp_server.html
Copyright © 2011-2022 走看看