pyftpdlib搭建ftp服务器

1、安装python、pip、virtualenv

#centos下python是自带,无需自己安装
#安装pip
sudo yum -y install epel-release
sudo yum -y install python-pip
sudo yum clean all
#安装virtualenv
yum install python-virtualenv

2、安装pyftpdlib

#创建并开启虚拟环境
virtualenv ftp_evn
source ftp_evn/bin/activate

#安装pyftpdlib
pip install pyftpdlib

3、写启动脚本ftpserver.py

#!/usr/bin/env python

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


def main():
    authorizer = DummyAuthorizer()
    authorizer.add_user("admin", "h3c.com!", "/opt/share", perm="elradfmwM")
    handler = FTPHandler
    handler.authorizer = authorizer
    server = ThreadedFTPServer(('', 21), handler)
    server.serve_forever()


if __name__ == "__main__":
    main()

4、运行

nohup python ftpserver.py &

浏览器访问ftp://10.90.3.118  (我的服务器ip是10.90.3.118)。输入用户名/密码后可见目录:

5、关于windows上传文件后,文件名中文乱码问题的解决方案

pyftpdlib内部使用utf-8,windows使用的是gbk,可以对pyftpdlib源码进行修改:

1、filesystems.py AbstractedFS.format_list与AbstractedFS.format_list
最后一行 yield line.encode('utf8', self.cmd_channel.unicode_errors) utf8改为gbk
2、handlers.py FTPHandler.decode return bytes.decode('utf8', self.unicode_errors) utf8改为gbk 

 

 

 

 

转载于:https://my.oschina.net/u/1185936/blog/1505270

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值