當你想快速共享一個目錄的時候,這是特別有用的,只需要1行代碼即可實現。
FTP 服務器,在此之前我都是使用Linux的vsftpd軟件包來搭建FTP服務器的,現在發現了利用pyftpdlib可以更加簡單的方法即可實現FTP服務器的功能。
環境要求
- Python 2.7
- Windows / Linux
環境搭建
pip install pyftpdlib
一行代碼實現FTP服務器
通過Python的-m選項作為一個簡單的獨立服務器來運行,當你想快速共享一個目錄的時候,這是特別有用的。
在需要共享的目錄下執行如下命令即可把當前目錄共享出去(匿名登錄)
python -m pyftpdlib
至此一個簡單的FTP服務器已經搭建完成,訪問 ftp://127.0.0.1:2121 即可
(默認IP為 127.0.0.1 、端口為 2121 )
效果圖
可選參數
- -i 指定IP地址(默認為本機的IP地址)
- -p 指定端口(默認為2121)
- -w 寫權限(默認為只讀)
- -d 指定目錄 (默認為當前目錄)
- -u 指定用戶名登錄
-
-P 設置登錄密碼
簡單示例
上述的一行命令已經可以實現一個簡單的FTP服務器,但是要搭建一個功能強大完善的FTP服務所涉及到的配置較多,這時需要使用Pyftpdlib提供的 API 來編寫。如下是一個簡單的示例
from pyftpdlib.authorizers import DummyAuthorizer from pyftpdlib.handlers import FTPHandler from pyftpdlib.servers import FTPServer # 實例化DummyAuthorizer來創建ftp用戶 authorizer = DummyAuthorizer() # 參數:用戶名,密碼,目錄,權限 authorizer.add_user('user', '12345', '/opt/pyftp/test', perm='elradfmwMT') # 匿名登錄 # authorizer.add_anonymous('/home/nobody') handler = FTPHandler handler.authorizer = authorizer # 參數: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" =將數據追加到現有文件(APPE命令)
- "d" =刪除文件或目錄(DELE,RMD命令)
- "f" =重命名文件或目錄(RNFR,RNTO命令)
- "m" =創建目錄(MKD命令)
- "w" =將文件存儲到服務器(STOR,STOU命令)
- "M"=更改文件模式/權限(SITE CHMOD命令)
-
"T"=更改文件修改時間(SITE MFMT命令)
參考
Pyftpdlib文檔:http://pyftpdlib.readthedocs.io/en/latest/index.html
總結
以上所述是小編給大家介紹的Python代碼使用 Pyftpdlib實現FTP服務器功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
