美文网首页
Python搭建FTP局域网文件高速下载服务器

Python搭建FTP局域网文件高速下载服务器

作者: Swift编程初学者 | 来源:发表于2019-10-28 20:11 被阅读0次

    话别多说,先上代码

    from pyftpdlib.authorizers import DummyAuthorizer
    from pyftpdlib.handlers import FTPHandler
    from pyftpdlib.servers import FTPServer
    
    authorizer = DummyAuthorizer()
    # 设置权限登录
    # authorizer.add_user('Mr.Ming', '123456', './ftp_dir', perm = 'elradfmw')
    # 设置匿名登录
    authorizer.add_anonymous('./ftp_dir')
    handler = FTPHandler
    handler.authorizer = authorizer
    server = FTPServer(('10.7.181.59', 618), handler)
    server.serve_forever()
    

    首先需要pip安装第三方库
    由于我用的Windows上只有Python3这个版本,可以直接使用

    pip install pyftpdlib
    

    Mac或Linux用户则需要根据Python版本来安装
    Python2

    pip2 install pyftpdlib
    

    Python3

    pip3 install pyftpdlib
    

    Python2的环境应该不做任何修改直接使用,Python2用户自行体验一下

    出去前面三行导包,从正式的代码开始,不包含注释:
    第一行: 创建一个用户对象
    第二行第三行二选一:添加用户
    第二行:添加一个需要账号,密码访问的用户,(参数:用户名 密码 访问路径 权限)
    关于权限见下图

    权限参数
    第三行:添加一个匿名用户,不需要密码访问指定路径,(参数:访问路径)
    访问路径: ./.py文件的当前目录
    第四行:创建FTPHeadler句柄,(什么是句柄以及什么是FTPHeadler句柄,自行百度,我这里搜到一篇:什么是句柄?为什么会有句柄?HANDLE)
    第五行:将用户对象加入到句柄(最开始我把Handler搞成了消息队列,所以这里解释的可能有点不准确)
    第六行:创建FTP服务实例,(初始化参数:第一个是一个元组,元组第一个是本机在局域网内的地址,元组第二个是端口)
    第七行: 启动服务

    只有第二三行和第六行可以自定义外,其他都是固定格式

    终端用Python运行,开启服务

    python ftp_server.py
    

    如果不想每次都输python,可以修改文件权限为可执行,在脚本开头加上

    #![python的安装路径]
    ...
    

    如果嫌Python脚本运行时占用终端的界面,无法做其他,可以安装相应的工具转换成可执行文件
    比如Windows上可以安装PyInstaller打包成.exe可执行文件
    首先要用pip安装这个包

    pip install pyinstaller
    

    安装好后终端切换路径到ftp_server.py的路径,执行命令

    pyinstaller -F ftp_server.py
    

    (PyInstaller的具体使用请自查)
    完成后在当前目录下生成了一个叫ftp_server.pyc的编译文件,一个用于构建的Build文件夹,还有一个叫dist的文件夹,里面就是最终生成的ftp_server.exe可执行文件,把ftp_server.exe复制到上一级(与ftp_server.py同级),不然执行后会路径不对,然后刚提到的那三个文件和文件夹可以删除了

    相关文章

      网友评论

          本文标题:Python搭建FTP局域网文件高速下载服务器

          本文链接:https://www.haomeiwen.com/subject/chxivctx.html