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程式
- ASP + Serv-u 實現FTP的程式碼 (轉)FTP
- Python實現ftp常用操作[ftplib]PythonFTP
- Java實現FTP跨伺服器檔案操作JavaFTP伺服器
- python——指令碼實現檢測目標ip是否存在ftp笑臉漏洞(ftp後門漏洞)Python指令碼FTP
- Python課程程式碼實現Python
- 實現一個簡單的FTP伺服器(十四)FTP伺服器
- FTP伺服器搭建踩坑和工具類實現FTP伺服器
- 文字實現ftpFTP
- C# FTP上傳檔案至伺服器程式碼C#FTP伺服器
- Python程式碼實現雙色球原理Python
- FTP伺服器端程式分類FTP伺服器
- Python程式碼實現“FlappyBird”小遊戲PythonAPP遊戲
- 500行 python 程式碼實現模板引擎Python
- 伺服器FTP工具,Windows伺服器FTP工具伺服器FTPWindows
- FTP 資訊程式碼全解FTP
- 一行 Python 程式碼實現並行Python並行
- 20 行 Python 程式碼實現加密通訊Python加密
- Python實現程式碼行數統計工具Python
- 主成分分析(PCA)Python程式碼實現PCAPython
- 使用 git hook 實現伺服器程式碼自動部署GitHook伺服器
- 用java實現ftp的功能JavaFTP
- 70 行 python 程式碼實現桌布批量下載Python
- python 程式碼實現查詢功能介面測試Python
- Python-FTP漏洞掃描指令碼PythonFTP指令碼
- Python使用socket的UDP協議實現FTP檔案服務PythonUDP協議FTP
- 建立ftp伺服器FTP伺服器
- python指令碼實現向伺服器上傳 zip並解壓Python指令碼伺服器
- 用 Python 指令碼實現對 Linux 伺服器的監控Python指令碼Linux伺服器
- wing ftp server(ftp伺服器軟體)FTPServer伺服器
- Promise 程式碼實現Promise
- [CentOS Python系列] 一.阿里雲伺服器安裝部署及第一個Python爬蟲程式碼實現CentOSPython阿里伺服器爬蟲
- FTP 數字程式碼的意義FTP
- 用Python快速搭建http伺服器和FTP伺服器的步驟PythonHTTP伺服器FTP
- 實現彩色二維碼程式碼實
- Locust 程式碼指令碼實現指令碼