在windows上建立fitp服務(wù)器
在linux環(huán)境上weget ftp://user:password@ip:port/file_path
windows上搭建ftp服務(wù)器代碼如下:
from pyftpdlib.authorizers import DummyAuthorizer
from pyftpdlib.handlers import FTPHandler, ThrottledDTPHandler
from pyftpdlib.servers import FTPServer
from conf import settings
import logging
def get_user(userfile):
? ? #定義一個用戶列表
? ? user_list = []
? ? with open(userfile) as f:
? ? ? ? for line in f:
? ? ? ? ? ? if not line.startswith('#') and line:
? ? ? ? ? ? ? ? if len(line.split()) == 4:
? ? ? ? ? ? ? ? ? ? user_list.append(line.split())
? ? ? ? ? ? ? ? else:
? ? ? ? ? ? ? ? ? ? print("user.conf配置錯誤")
? ? print(user_list)
? ? return user_list
def ftp_server():
? ? #實例化虛擬用戶狮崩,這是FTP驗證首要條件
? ? authorizer = DummyAuthorizer()
? ? authorizer.add_user('usera', '12345', '/ftp/acct_info', perm='elradfmw')
? ? #添加匿名用戶 只需要路徑
? ? if settings.enable_anonymous == 'on':
? ? ? ? authorizer.add_anonymous(settings.anonymous_path)
? ? #下載上傳速度設(shè)置
? ? dtp_handler = ThrottledDTPHandler
? ? dtp_handler.read_limit = settings.max_download
? ? dtp_handler.write_limit = settings.max_upload
? ? #初始化ftp句柄
? ? handler = FTPHandler
? ? handler.authorizer = authorizer
? ? #日志記錄
? ? if settings.enable_logging == 'on':
? ? ? ? logging.basicConfig(filename=settings.loging_name, level=logging.INFO)
? ? #歡迎信息
? ? handler.banner = settings.welcome_msg
? ? #添加被動端口范圍
? ? handler.passive_ports = range(settings.passive_ports[0], settings.passive_ports[1])
? ? #監(jiān)聽ip 和 端口
? ? server = FTPServer((settings.ip, settings.port), handler)
? ? #最大連接數(shù)
? ? server.max_cons = settings.max_cons
? ? server.max_cons_per_ip = settings.max_per_ip
? ? #開始服務(wù)
? ? print('開始服務(wù)')
? ? server.serve_forever()
if __name__ == "__main__":
? ? ftp_server()