基於python搭建FTP服務


  使用python搭建FTP服務非常容易,且非常穩定,更重要的是可以實現一些精細化的控制,例如精細的訪問權限配置,詳細的日志記錄等工作

  這里是使用了pyftpdlib模塊

1. 安裝

pip install pyftpdlib

 

2. 使用

 快速搭建一個簡單的FTP服務:

python -m pyftpdlib -p 21

即可在執行命令所在的目錄下建立一個端口為21的供下載文件的FTP服務

 

搭建一個具有訪問權限的FTP服務

from pyftpdlib.authorizers import DummyAuthorizer
from pyftpdlib.handlers import FTPHandler, ThrottledDTPHandler
from pyftpdlib.servers import FTPServer
from pyftpdlib.log import LogFormatter
import logging

logger = logging.getLogger()
logger.setLevel(logging.INFO)
ch = logging.StreamHandler()
fh = logging.FileHandler(filename='myftpserver.log', encoding='utf-8') # 默認追加到日志文件
ch.setFormatter(LogFormatter())
fh.setFormatter(LogFormatter())
logger.addHandler(ch)  # 將日志輸出到屏幕
logger.addHandler(fh)  # 將日志輸出至文件

authorizer = DummyAuthorizer()
# 添加用戶權限與路徑,參數(用戶名,密碼,用戶目錄,權限(見說明)) authorizer.add_user(
'lanlang', '123456', "./files", perm="elradfmw")
# 添加匿名用戶,只添加路徑 authorizer.add_anonymous(
"./files") handler = FTPHandler handler.authorizer = authorizer
# 添加被動端口范圍 handler.passive_ports
= range(2000, 2333) # 下載上傳速度設置 dtp_handler = ThrottledDTPHandler dtp_handler.read_limit = 300 * 1024 # 300kb/s dtp_handler.write_limit = 300 * 1024 # 300kb/s handler.dtp_handler = dtp_handler # 監聽IP和端口,Linux中需要root用戶才能使用21端口 server = FTPServer(('0.0.0.0', 21), handler) # 最大連接數 server.max_cons = 150 server.max_cons_per_ip = 15 server.serve_forever()

 

 權限說明:

讀權限:

代碼  說明
e  改變文件目錄
l  列出文件
r 從服務器接收文件

 

 寫權限:

M 文件傳輸模式(通過FTP設置文件權限)
a 文件上傳
d 刪除文件
f 文件重命名
m 創建文件
w

寫權限

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM