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 寫權(quán)限(默認為只讀)
- -d 指定目錄 (默認為當前目錄)
- -u 指定用戶名登錄
- -P 設(shè)置登錄密碼
簡單示例
上述的一行命令已經(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ù):用戶名,密碼,目錄,權(quán)限 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權(quán)限選項
讀取權(quán)限:
- "e" =更改目錄(CWD,CDUP命令)
- "l" =列表文件(LIST,NLST,STAT,MLSD,MLST,SIZE命令)
- "r" =從服務器檢索文件(RETR命令)
寫入權(quán)限:
- "a" =將數(shù)據(jù)追加到現(xiàn)有文件(APPE命令)
- "d" =刪除文件或目錄(DELE,RMD命令)
- "f" =重命名文件或目錄(RNFR,RNTO命令)
- "m" =創(chuàng)建目錄(MKD命令)
- "w" =將文件存儲到服務器(STOR,STOU命令)
- "M"=更改文件模式/權(quán)限(SITE CHMOD命令)
- "T"=更改文件修改時間(SITE MFMT命令)
參考
Pyftpdlib文檔:http://pyftpdlib.readthedocs.io/en/latest/index.html
總結(jié)
以上所述是小編給大家介紹的Python代碼使用 Pyftpdlib實現(xiàn)FTP服務器功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
超詳細PyTorch實現(xiàn)手寫數(shù)字識別器的示例代碼
這篇文章主要介紹了超詳細PyTorch實現(xiàn)手寫數(shù)字識別器的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-03-03python實現(xiàn)將多個文件分配到多個文件夾的方法
今天小編就為大家分享一篇python實現(xiàn)將多個文件分配到多個文件夾的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01利用Python實現(xiàn)去重聚合Excel數(shù)據(jù)并對比兩份數(shù)據(jù)的差異
在數(shù)據(jù)處理過程中,常常需要將多個數(shù)據(jù)表進行合并,并進行比對,以便找出數(shù)據(jù)的差異和共同之處,本文將介紹如何使用 Pandas 庫對兩個 Excel 數(shù)據(jù)表進行合并與比對,需要的可以參考下2023-11-11tensorflow2.0與tensorflow1.0的性能區(qū)別介紹
今天小編就為大家分享一篇tensorflow2.0與tensorflow1.0的性能區(qū)別介紹,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02Python實現(xiàn)將MySQL數(shù)據(jù)庫表中的數(shù)據(jù)導出生成csv格式文件的方法
這篇文章主要介紹了Python實現(xiàn)將MySQL數(shù)據(jù)庫表中的數(shù)據(jù)導出生成csv格式文件的方法,涉及Python針對mysql數(shù)據(jù)庫的連接、查詢、csv格式數(shù)據(jù)文件的生成等相關(guān)操作技巧,需要的朋友可以參考下2018-01-01