pyftpdlib搭建ftp服務器

一、安裝python、pip、virtualenvpython

#centos下python是自帶,無需本身安裝
#安裝pip
sudo yum -y install epel-release
sudo yum -y install python-pip
sudo yum clean all
#安裝virtualenv
yum install python-virtualenv

二、安裝pyftpdlibwindows

#建立並開啓虛擬環境
virtualenv ftp_evn
source ftp_evn/bin/activate

#安裝pyftpdlib
pip install pyftpdlib

三、寫啓動腳本ftpserver.pycentos

#!/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()

四、運行瀏覽器

nohup python ftpserver.py &

瀏覽器訪問ftp://10.90.3.118  (個人服務器ip是10.90.3.118)。輸入用戶名/密碼後可見目錄:bash

五、關於windows上傳文件後,文件名中文亂碼問題的解決方案服務器

pyftpdlib內部使用utf-8,windows使用的是gbk,能夠對pyftpdlib源碼進行修改:code

一、filesystems.py AbstractedFS.format_list與AbstractedFS.format_list
最後一行 yield line.encode('utf8', self.cmd_channel.unicode_errors) utf8改成gbk
二、handlers.py FTPHandler.decode return bytes.decode('utf8', self.unicode_errors) utf8改成gbk
相關文章
相關標籤/搜索