Python一秒搭建ftp服務器,幫助你在局域網共享文件

老闆來碗麪

內牛滿面.gif

“老闆 來碗麪”
“要啥面?”
“內牛滿面…”

最近項目上的事情弄得人心累,本來是幫着兄弟項目寫套入口代碼,搞着搞着就被拉着入坑了。搞開發的都知道,最怕弄這種項目portal的東西,你調用一堆東西,結果各種調用報錯都反饋到你這裏,導致的結果就是除了啥問題都找你。
隔壁老王
最形象的比喻就是,眼前一棟樓,你是看門的。電梯壞了找你、住戶被盜了找你、連誰家下水不通了也找你,各種無厘頭的破事兒,我就想送出一張圖…

共享文件

熟悉Python的朋友們都知道,python自帶了一個***Simple HTTP Server***,可以使用一行代碼完成文件的局域網共享操作。
首先進入你需要設置的http服務器目錄 (我以自己電腦路徑:F:/Working~Study) ,即進入到該目錄下,然後:

  • python2: python -m SimpleHTTPServer port
  • python3: python -m http.server port
    我是用一個8888的端口啓動服務,最終的共享效果,如下圖:
    httpserver

通過一行代碼,我們完成了文件共享的http服務,但這個服務有幾個問題,僅提供了下載功能無法上傳,最重要的是沒有權限控制功能,這就極其不安全了!該如何解決這個問題呢?我之前用Flask寫了一個功能更完善的httpserver:
FlaskHttpServer
喜歡的朋友可以去看看這篇歷史文章: 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共享服務。
首先我們使用瀏覽器登陸看下效果:
Ftp服務器
之後,我們在使用xftp工具登陸:
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

OK,今天的內容就到這裏,如果覺得內容對你有所幫助,歡迎點擊文章右下角的“在看”。
期待你關注我的公衆號**清風Python**,如果覺得不錯,希望能動動手指轉發給你身邊的朋友們。
希望每週一至五清晨的7點10分,都能讓清風Python的知識文章叫醒大家!謝謝……
清風Python

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章