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

可選參數(shù)
- -i 指定IP地址(默認(rèn)為本機(jī)的IP地址)
- -p 指定端口(默認(rèn)為2121)
- -w 寫權(quán)限(默認(rèn)為只讀)
- -d 指定目錄 (默認(rèn)為當(dāng)前目錄)
- -u 指定用戶名登錄
- -P 設(shè)置登錄密碼
簡(jiǎn)單示例
上述的一行命令已經(jīng)可以實(shí)現(xiàn)一個(gè)簡(jiǎn)單的FTP服務(wù)器,但是要搭建一個(gè)功能強(qiáng)大完善的FTP服務(wù)所涉及到的配置較多,這時(shí)需要使用Pyftpdlib提供的 API 來(lái)編寫。如下是一個(gè)簡(jiǎn)單的示例
from pyftpdlib.authorizers import DummyAuthorizer
from pyftpdlib.handlers import FTPHandler
from pyftpdlib.servers import FTPServer
# 實(shí)例化DummyAuthorizer來(lái)創(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)限選項(xiàng)
讀取權(quán)限:
- "e" =更改目錄(CWD,CDUP命令)
- "l" =列表文件(LIST,NLST,STAT,MLSD,MLST,SIZE命令)
- "r" =從服務(wù)器檢索文件(RETR命令)
寫入權(quán)限:
- "a" =將數(shù)據(jù)追加到現(xiàn)有文件(APPE命令)
- "d" =刪除文件或目錄(DELE,RMD命令)
- "f" =重命名文件或目錄(RNFR,RNTO命令)
- "m" =創(chuàng)建目錄(MKD命令)
- "w" =將文件存儲(chǔ)到服務(wù)器(STOR,STOU命令)
- "M"=更改文件模式/權(quán)限(SITE CHMOD命令)
- "T"=更改文件修改時(shí)間(SITE MFMT命令)
參考
Pyftpdlib文檔:http://pyftpdlib.readthedocs.io/en/latest/index.html
總結(jié)
以上所述是小編給大家介紹的Python代碼使用 Pyftpdlib實(shí)現(xiàn)FTP服務(wù)器功能,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
- 使用 Python 快速實(shí)現(xiàn) HTTP 和 FTP 服務(wù)器的方法
- Python 獲取ftp服務(wù)器文件時(shí)間的方法
- 使用python實(shí)現(xiàn)ftp的文件讀寫方法
- 使用python實(shí)現(xiàn)快速搭建簡(jiǎn)易的FTP服務(wù)器
- python ftp 按目錄結(jié)構(gòu)上傳下載的實(shí)現(xiàn)代碼
- Python基于FTP模塊實(shí)現(xiàn)ftp文件上傳操作示例
- python實(shí)現(xiàn)FTP服務(wù)器服務(wù)的方法
- Python FTP文件定時(shí)自動(dòng)下載實(shí)現(xiàn)過(guò)程解析
相關(guān)文章
解決django前后端分離csrf驗(yàn)證的問(wèn)題
今天小編就為大家分享一篇解決django前后端分離csrf驗(yàn)證的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-02-02
利用Python實(shí)現(xiàn)朋友圈中的九宮格圖片效果
這篇文章主要給大家介紹了關(guān)于利用Python如何實(shí)現(xiàn)朋友圈中九宮格圖片效果的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
Python結(jié)合Selenium簡(jiǎn)單實(shí)現(xiàn)Web自動(dòng)化測(cè)試
這篇文章是入門級(jí)別的應(yīng)用Python + Selenium進(jìn)行自動(dòng)化測(cè)試,包括環(huán)境搭建及簡(jiǎn)單的實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
全面剖析Python的Django框架中的項(xiàng)目部署技巧
這篇文章主要全面剖析了Python的Django框架的部署技巧,包括Fabric等自動(dòng)化部署和建立單元測(cè)試等方面,強(qiáng)烈推薦!需要的朋友可以參考下2015-04-04
Python?使用pip在windows命令行中安裝HDF?reader包的操作方法
HDF reader包是一個(gè)常用來(lái)將.mat類型數(shù)據(jù)導(dǎo)入到python在這里插入代碼片中使用的包,非常好用,今天介紹一下,如何在命令行中安裝這個(gè)包,需要的朋友可以參考下2022-12-12
OpenCV學(xué)習(xí)之圖像形態(tài)學(xué)處理詳解
這篇文章主要為大家詳細(xì)介紹了OpenCV中圖像形態(tài)學(xué)處理的相關(guān)知識(shí),例如:腐蝕操作、膨脹操作、開閉運(yùn)算、梯度運(yùn)算、Top Hat Black Hat運(yùn)算等操作,需要的可以參考一下2023-02-02
Python利用第三方模塊實(shí)現(xiàn)壓縮css文件
在?Python?中可以使用多種方法來(lái)壓縮?CSS?文件。其中一種流行的方法是使用?csscompressor?庫(kù),這個(gè)庫(kù)可以幫助你壓縮?CSS?代碼,下文就來(lái)和大家詳細(xì)聊聊2023-01-01

