Python代碼使用 Pyftpdlib實現(xiàn)FTP服務器功能
當你想快速共享一個目錄的時候,這是特別有用的,只需要1行代碼即可實現(xiàn)。
FTP 服務器,在此之前我都是使用Linux的vsftpd軟件包來搭建FTP服務器的,現(xiàn)在發(fā)現(xiàn)了利用pyftpdlib可以更加簡單的方法即可實現(xiàn)FTP服務器的功能。
環(huán)境要求
- Python 2.7
- Windows / Linux
環(huán)境搭建
pip install pyftpdlib
一行代碼實現(xiàn)FTP服務器
通過Python的-m選項作為一個簡單的獨立服務器來運行,當你想快速共享一個目錄的時候,這是特別有用的。
在需要共享的目錄下執(zhí)行如下命令即可把當前目錄共享出去(匿名登錄)
python -m pyftpdlib
至此一個簡單的FTP服務器已經(jīng)搭建完成,訪問 ftp://127.0.0.1:2121 即可
(默認IP為 127.0.0.1 、端口為 2121 )
效果圖

可選參數(shù)
- -i 指定IP地址(默認為本機的IP地址)
- -p 指定端口(默認為2121)
- -w 寫權限(默認為只讀)
- -d 指定目錄 (默認為當前目錄)
- -u 指定用戶名登錄
- -P 設置登錄密碼
簡單示例
上述的一行命令已經(jīng)可以實現(xiàn)一個簡單的FTP服務器,但是要搭建一個功能強大完善的FTP服務所涉及到的配置較多,這時需要使用Pyftpdlib提供的 API 來編寫。如下是一個簡單的示例
from pyftpdlib.authorizers import DummyAuthorizer
from pyftpdlib.handlers import FTPHandler
from pyftpdlib.servers import FTPServer
# 實例化DummyAuthorizer來創(chuàng)建ftp用戶
authorizer = DummyAuthorizer()
# 參數(shù):用戶名,密碼,目錄,權限
authorizer.add_user('user', '12345', '/opt/pyftp/test', perm='elradfmwMT')
# 匿名登錄
# authorizer.add_anonymous('/home/nobody')
handler = FTPHandler
handler.authorizer = authorizer
# 參數(shù):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" =將數(shù)據(jù)追加到現(xiàn)有文件(APPE命令)
- "d" =刪除文件或目錄(DELE,RMD命令)
- "f" =重命名文件或目錄(RNFR,RNTO命令)
- "m" =創(chuàng)建目錄(MKD命令)
- "w" =將文件存儲到服務器(STOR,STOU命令)
- "M"=更改文件模式/權限(SITE CHMOD命令)
- "T"=更改文件修改時間(SITE MFMT命令)
參考
Pyftpdlib文檔:http://pyftpdlib.readthedocs.io/en/latest/index.html
總結
以上所述是小編給大家介紹的Python代碼使用 Pyftpdlib實現(xiàn)FTP服務器功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!
相關文章
Python結合Selenium簡單實現(xiàn)Web自動化測試
這篇文章是入門級別的應用Python + Selenium進行自動化測試,包括環(huán)境搭建及簡單的實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09
Python?使用pip在windows命令行中安裝HDF?reader包的操作方法
HDF reader包是一個常用來將.mat類型數(shù)據(jù)導入到python在這里插入代碼片中使用的包,非常好用,今天介紹一下,如何在命令行中安裝這個包,需要的朋友可以參考下2022-12-12

