手把手教你用1行Python代碼實現(xiàn)FTP服務(wù)器 -- Pyftpdlib

當(dāng)你想快速共享一個目錄的時候掸掸,這是特別有用的坑填,只需要1行代碼即可實現(xiàn)。

FTP 服務(wù)器叹洲,在此之前我都是使用Linux的vsftpd軟件包來搭建FTP服務(wù)器的,現(xiàn)在發(fā)現(xiàn)了利用pyftpdlib可以更加簡單的方法即可實現(xiàn)FTP服務(wù)器的功能工禾。

環(huán)境要求

  • Python 2.7
  • Windows / Linux

環(huán)境搭建

pip install pyftpdlib

一行代碼實現(xiàn)FTP服務(wù)器

通過Python的-m選項作為一個簡單的獨立服務(wù)器來運行运提,當(dāng)你想快速共享一個目錄的時候蝗柔,這是特別有用的。

在需要共享的目錄下執(zhí)行如下命令即可把當(dāng)前目錄共享出去(匿名登錄)

python -m pyftpdlib

至此一個簡單的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è)置登錄密碼

簡單示例

上述的一行命令已經(jīng)可以實現(xiàn)一個簡單的FTP服務(wù)器,但是要搭建一個功能強大完善的FTP服務(wù)所涉及到的配置較多栈妆,這時需要使用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" =從服務(wù)器檢索文件(RETR命令)

寫入權(quán)限:

  • "a" =將數(shù)據(jù)追加到現(xiàn)有文件(APPE命令)
  • "d" =刪除文件或目錄(DELE粪滤,RMD命令)
  • "f" =重命名文件或目錄(RNFR,RNTO命令)
  • "m" =創(chuàng)建目錄(MKD命令)
  • "w" =將文件存儲到服務(wù)器(STOR雀扶,STOU命令)
  • "M"=更改文件模式/權(quán)限(SITE CHMOD命令)
  • "T"=更改文件修改時間(SITE MFMT命令)

參考

Pyftpdlib文檔:http://pyftpdlib.readthedocs.io/en/latest/index.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末杖小,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子怕吴,更是在濱河造成了極大的恐慌窍侧,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件转绷,死亡現(xiàn)場離奇詭異伟件,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)议经,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進(jìn)店門斧账,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人煞肾,你說我怎么就攤上這事咧织。” “怎么了籍救?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵习绢,是天一觀的道長。 經(jīng)常有香客問我,道長闪萄,這世上最難降的妖魔是什么梧却? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮败去,結(jié)果婚禮上放航,老公的妹妹穿的比我還像新娘。我一直安慰自己圆裕,他們只是感情好广鳍,可當(dāng)我...
    茶點故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著吓妆,像睡著了一般赊时。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上行拢,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天蛋叼,我揣著相機(jī)與錄音,去河邊找鬼剂陡。 笑死,一個胖子當(dāng)著我的面吹牛狐胎,可吹牛的內(nèi)容都是我干的鸭栖。 我是一名探鬼主播,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼握巢,長吁一口氣:“原來是場噩夢啊……” “哼晕鹊!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起暴浦,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤溅话,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后歌焦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體飞几,經(jīng)...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年独撇,在試婚紗的時候發(fā)現(xiàn)自己被綠了屑墨。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,664評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡纷铣,死狀恐怖卵史,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情搜立,我是刑警寧澤以躯,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站啄踊,受9級特大地震影響忧设,放射性物質(zhì)發(fā)生泄漏刁标。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一见转、第九天 我趴在偏房一處隱蔽的房頂上張望命雀。 院中可真熱鬧,春花似錦斩箫、人聲如沸吏砂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽狐血。三九已至,卻和暖如春易核,著一層夾襖步出監(jiān)牢的瞬間匈织,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工牡直, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留缀匕,地道東北人。 一個月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓碰逸,卻偏偏與公主長得像乡小,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子饵史,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,554評論 2 349

推薦閱讀更多精彩內(nèi)容