1行Python程式碼實現FTP伺服器
當你想快速共享一個目錄的時候,這是特別有用的,只需要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命令)
原文釋出時間為:2018-01-03
本文作者:Kangvcar
本文來自雲棲社群合作伙伴“Python中文社群”,瞭解相關資訊可以關注“Python中文社群”微信公眾號
相關文章
- 用 Python 快速實現 HTTP 和 FTP 伺服器PythonHTTPFTP伺服器
- 如何使用Python實現FTP伺服器?Python學習教程PythonFTP伺服器
- FTP客戶端c程式碼功能實現FTP客戶端C程式
- python——指令碼實現檢測目標ip是否存在ftp笑臉漏洞(ftp後門漏洞)Python指令碼FTP
- Python課程程式碼實現Python
- Java實現FTP跨伺服器檔案操作JavaFTP伺服器
- FTP伺服器搭建踩坑和工具類實現FTP伺服器
- Python程式碼實現“FlappyBird”小遊戲PythonAPP遊戲
- 伺服器FTP工具,Windows伺服器FTP工具伺服器FTPWindows
- 20 行 Python 程式碼實現加密通訊Python加密
- 一行 Python 程式碼實現並行Python並行
- Python-FTP漏洞掃描指令碼PythonFTP指令碼
- 【整合學習】:Stacking原理以及Python程式碼實現Python
- 手寫演算法-python程式碼實現Kmeans演算法Python
- 例項程式碼分享Python實現Linux監控PythonLinux
- python 程式碼實現查詢功能介面測試Python
- 70 行 python 程式碼實現桌布批量下載Python
- 使用 git hook 實現伺服器程式碼自動部署GitHook伺服器
- Python使用socket的UDP協議實現FTP檔案服務PythonUDP協議FTP
- wing ftp server(ftp伺服器軟體)FTPServer伺服器
- 初試python的socket程式設計--ftpPython程式設計FTP
- 支援向量機(SVM)從原理到python程式碼實現Python
- 簡單的python程式碼實現語音朗讀Python
- 用Python快速搭建http伺服器和FTP伺服器的步驟PythonHTTP伺服器FTP
- python指令碼實現向伺服器上傳 zip並解壓Python指令碼伺服器
- Python 潮流週刊#76:用 50 行 Python 程式碼實現 BASIC(摘要)Python
- 建立ftp伺服器FTP伺服器
- python實現密碼破解Python密碼
- Tomcat程式碼實現Tomcat
- Promise 程式碼實現Promise
- OutputStreamWriter介紹&程式碼實現和InputStreamReader介紹&程式碼實現
- Locust 程式碼指令碼實現指令碼
- 怎樣用一行 Python 程式碼實現並行Python並行
- Python-遺傳演算法君主交叉程式碼實現Python演算法
- 利用itchat 10行python程式碼實現微信轟炸Python
- 40行Python程式碼,實現卷積特徵視覺化Python卷積特徵視覺化
- 佇列 優先順序佇列 python 程式碼實現佇列Python
- Linklist程式碼實現以及程式碼解讀