91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python搭建FTP服務器的方法示例

發布時間:2020-10-04 15:06:45 來源:腳本之家 閱讀:132 作者:shu_8708 欄目:開發技術

Python版本 3.6.2

使用的ftp包:pyftpdlib    pip install pyftpdlib就可以下載安裝了

FTP協議下載上傳文件在文件過大的情況下會比HTTP更具有優勢,更為方便的實現斷點上傳和進度監控,下面是官方文檔中的

基本方法

import os 
from pyftpdlib.authorizers import DummyAuthorizer 
from pyftpdlib.handlers import FTPHandler 
from pyftpdlib.servers import FTPServer 
 
def main(): 
  # 實例化用戶授權管理 
  authorizer = DummyAuthorizer() 
  authorizer.add_user('user', '12345', 'path', perm='elradfmwMT')#添加用戶 參數:username,password,允許的路徑,權限 
  authorizer.add_anonymous(os.getcwd())#這里是允許匿名用戶,如果不允許刪掉此行即可 
 
  # 實例化FTPHandler 
  handler = FTPHandler 
  handler.authorizer = authorizer 
 
  # 設定一個客戶端鏈接時的標語 
  handler.banner = "pyftpdlib based ftpd ready." 
 
  #handler.masquerade_address = '151.25.42.11'#指定偽裝ip地址 
  #handler.passive_ports = range(60000, 65535)#指定允許的端口范圍 
 
  address = (ipaddr, 21)#FTP一般使用21,20端口 
  server = FTPServer(address, handler)#FTP服務器實例 
 
  # set a limit for connections 
  server.max_cons = 256 
  server.max_cons_per_ip = 5 
 
  # 開啟服務器 
  server.serve_forever() 
 
if __name__ == '__main__': 
  main() 

開啟ftp服務器后要確定防火墻開啟了21,20端口,并且在客戶端的瀏覽器中設置internet選項高級選項卡中的被動ftp的勾去掉之后才能登陸到ftp服務器

從Windows登錄到服務器:

Python搭建FTP服務器的方法示例

利用Python從ftp服務器上下載文件

from ftplib import FTP 
ftp=FTP() 
ftp.connect('localhost',21)#localhost改成服務器ip地址 
ftp.login(user='user',passwd='12345') 
 
file=open('f://ftpdownload/test.txt','wb') 
ftp.retrbinary("RETR test.txt",file.write,1024)#從服務器上下載文件 1024字節一個塊 
ftp.set_debuglevel(0) 
ftp.close() 

FTP服務器事件回調函數:

class MyHandler(FTPHandler):  
  def on_connect(self):#鏈接時調用 
    print "%s:%s connected" % (self.remote_ip, self.remote_port) 
 
  def on_disconnect(self):#關閉連接是調用 
    # do something when client disconnects 
    pass 
 
  def on_login(self, username):#登錄時調用 
    # do something when user login 
    pass 
 
  def on_logout(self, username):#登出時調用 
    # do something when user logs out 
    pass 
 
  def on_file_sent(self, file):#文件下載后調用 
    # do something when a file has been sent 
    pass 
 
  def on_file_received(self, file):#文件上傳后調用 
    # do something when a file has been received 
    pass 
 
  def on_incomplete_file_sent(self, file):#下載文件時調用 
    # do something when a file is partially sent 
    pass 
 
  def on_incomplete_file_received(self, file):#上傳文件時調用 
    # remove partially uploaded files 
    import os 
    os.remove(file) 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安吉县| 张家川| 甘谷县| 宜州市| 十堰市| 阳山县| 宁国市| 象州县| 个旧市| 舞阳县| 双峰县| 五华县| 铜山县| 徐州市| 仲巴县| 广宁县| 图们市| 营山县| 上林县| 静乐县| 滦南县| 蓝山县| 龙泉市| 天台县| 宁夏| 扎鲁特旗| 吕梁市| 安达市| 万州区| 会宁县| 沙湾县| 筠连县| 洛扎县| 绵竹市| 浦城县| 齐齐哈尔市| 滁州市| 鄂托克旗| 沛县| 麻阳| 名山县|