Python一秒搭建ftp服務器,幫助你在局域網共享文件
老板來碗面
最近項目上的事情弄得人心累,本來是幫著兄弟項目寫套入口代碼,搞著搞著就被拉著入坑了。搞開發的都知道,最怕弄這種項目portal的東西,你調用一堆東西,結果各種調用報錯都反饋到你這里,導致的結果就是除了啥問題都找你。
最形象的比喻就是,眼前一棟樓,你是看門的。電梯壞了找你、住戶被盜了找你、連誰家下水不通了也找你,各種無厘頭的破事兒,我就想送出一張圖…
共享文件
熟悉Python的朋友們都知道,python自帶了一個Simple HTTP Server,可以使用一行代碼完成文件的局域網共享操作。
首先進入你需要設置的http服務器目錄 (我以自己電腦路徑:F:/Working~Study) ,即進入到該目錄下,然后:
python2: python -m SimpleHTTPServer port
python3: python -m http.server port
我是用一個8888的端口啟動服務,最終的共享效果,如下圖:
通過一行代碼,我們完成了文件共享的http服務,但這個服務有幾個問題,僅提供了下載功能無法上傳,最重要的是沒有權限控制功能,這就極其不安全了!該如何解決這個問題呢?我之前用Flask寫了一個功能更完善的httpserver:
喜歡的朋友可以去看看這篇歷史文章: https://www.jianshu.com/p/a5c4dca321f2
通過自己編碼的方式實現了相關功能,但是能否想httpserver一樣更快速的搭建一個文件共享服務器呢?此時,你應該想到ftp服務器!沒錯,ftp服務器不僅可以達到文件共享的大前提,還能通過設置用戶名密碼的方式來實現權限管理。用Python實現它麻煩么?不麻煩,也只需要一行代碼!
Ftp服務器搭建
模塊安裝
python沒有內置ftp模塊,但要使用它卻很簡單,我們只需要簡單的通過pip安裝即可:
pip install pyftpdlib
簡單共享
模塊安裝完成后,我們找到需要共享的目錄,然后啟動cmd后,輸入:
python -m pyftpdlib -p 21
之后瀏覽器登陸ftp://ip:port,這樣就開啟了一個最簡單的ftp共享服務。
首先我們使用瀏覽器登陸看下效果:
之后,我們在使用xftp工具登陸:
但此時,我們只是通過匿名用戶anonymous,密碼空的方式進行訪問,只能使用ftp下載功能,而無法上傳…
高級使用
簡單的ftp搭建方式,肯定不滿足我們的要求,那么我么就需要進行二次開發了!但也僅僅需要幾行代碼而已:
# -*- coding: utf-8 -*-
# @Author ? : 王翔
# @JianShu ?: 清風Python
# @Date ? ? : 2019/8/30 1:26
# @Software : PyCharm
# @version ?:Python 3.7.3
# @File ? ? : PythonFtp.py
from pyftpdlib.handlers import FTPHandler
from pyftpdlib.servers import FTPServer
from pyftpdlib.authorizers import DummyAuthorizer
authorizer = DummyAuthorizer()
authorizer.add_user('python', '123456', 'F:\\Working~Study', perm='elradfmwM')
handler = FTPHandler
handler.authorizer = authorizer
server = FTPServer(('0.0.0.0', 8888), handler)
server.serve_forever()
不管是windows還是linux服務器下,你還能想到比python搭建FTP服務器更簡單的方式嗎?哈哈…
The End
本文來自“清風Python”公眾號,歡迎關注!
FTP python
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。