Python代碼使用 Pyftpdlib實(shí)現(xiàn)FTP服務(wù)器功能
當(dāng)你想快速共享一個(gè)目錄的時(shí)候,這是特別有用的,只需要1行代碼即可實(shí)現(xiàn)。
FTP 服務(wù)器,在此之前我都是使用Linux的vsftpd軟件包來搭建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ù)器
通過Python的-m選項(xiàng)作為一個(gè)簡(jiǎn)單的獨(dú)立服務(wù)器來運(yùn)行,當(dāng)你想快速共享一個(gè)目錄的時(shí)候,這是特別有用的。
在需要共享的目錄下執(zhí)行如下命令即可把當(dāng)前目錄共享出去(匿名登錄)
python -m pyftpdlib
至此一個(gè)簡(jiǎn)單的FTP服務(wù)器已經(jīng)搭建完成,訪問 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 來編寫。如下是一個(gè)簡(jiǎn)單的示例
from pyftpdlib.authorizers import DummyAuthorizer from pyftpdlib.handlers import FTPHandler from pyftpdlib.servers import FTPServer # 實(shí)例化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)限選項(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ì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(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ān)文章
通過實(shí)例解析Python RPC實(shí)現(xiàn)原理及方法
這篇文章主要介紹了通過實(shí)例解析Python RPC實(shí)現(xiàn)原理及方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07超詳細(xì)PyTorch實(shí)現(xiàn)手寫數(shù)字識(shí)別器的示例代碼
這篇文章主要介紹了超詳細(xì)PyTorch實(shí)現(xiàn)手寫數(shù)字識(shí)別器的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03python實(shí)現(xiàn)健康碼查驗(yàn)系統(tǒng)
這篇文章主要介紹了?python實(shí)現(xiàn)健康碼查驗(yàn)系統(tǒng),主要用到的是python用了opencv庫和pyzbar庫,文中給大家提供一段代碼判斷是否綠碼,需要的朋友可以參考下2022-04-04python實(shí)現(xiàn)將多個(gè)文件分配到多個(gè)文件夾的方法
今天小編就為大家分享一篇python實(shí)現(xiàn)將多個(gè)文件分配到多個(gè)文件夾的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-01-01利用Python實(shí)現(xiàn)去重聚合Excel數(shù)據(jù)并對(duì)比兩份數(shù)據(jù)的差異
在數(shù)據(jù)處理過程中,常常需要將多個(gè)數(shù)據(jù)表進(jìn)行合并,并進(jìn)行比對(duì),以便找出數(shù)據(jù)的差異和共同之處,本文將介紹如何使用 Pandas 庫對(duì)兩個(gè) Excel 數(shù)據(jù)表進(jìn)行合并與比對(duì),需要的可以參考下2023-11-11tensorflow2.0與tensorflow1.0的性能區(qū)別介紹
今天小編就為大家分享一篇tensorflow2.0與tensorflow1.0的性能區(qū)別介紹,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-02-02Python實(shí)現(xiàn)將MySQL數(shù)據(jù)庫表中的數(shù)據(jù)導(dǎo)出生成csv格式文件的方法
這篇文章主要介紹了Python實(shí)現(xiàn)將MySQL數(shù)據(jù)庫表中的數(shù)據(jù)導(dǎo)出生成csv格式文件的方法,涉及Python針對(duì)mysql數(shù)據(jù)庫的連接、查詢、csv格式數(shù)據(jù)文件的生成等相關(guān)操作技巧,需要的朋友可以參考下2018-01-01