ftp橋接到http服務

2021-09-07 04:24:40 字數 749 閱讀 1214

先說一下我的需求:我的linodeserver近期ftp和sftp連不上了,port被封了。僅僅有http能夠訪問,我沒有辦法上傳檔案了。由於我尋常都用beyond compare上傳檔案,非常方便。所以我希望能通過在本地起乙個ftp服務,連線遠端的httpserver,這樣我的beyond compare還能繼續使用。

需求非常easy,僅僅須要實現乙個可擴充套件的ftpserver,然後把讀本地檔案的部分改寫為通過遠端的http介面訪問server上的檔案系統。經過幾天的努力,該功能已經所有實現了。

遇到的問題:

1. 大檔案,對於大的檔案,一般的httpserver都有上傳檔案限制大小,我是按段上傳的,所以不會有這個問題。能夠上傳隨意大小的問題。

2. 上面的問題衍生出來的新的問題,假設檔案過大。按段上傳可能會發起非常多http請求,過多的連線有可能耗盡本機的socketport。

眼下採用http1.1的長連線來降低連線次數,並同一時候設定socket的reuseaddress為true。

3. 分段上傳所分段不可太小,否則非常慢,假設太大,浪費記憶體,假設同一時候上傳檔案過多。非常可能非常快耗盡虛擬機器記憶體,由於來不及釋放。所以採用自己主動調整快取大小的策略,一開始使用乙個非常小的快取。每次flush快取大小擴容一倍直到配置的最大值,最大不超過1m(可配置)。

一般的小檔案基本不須要擴容。

4. 為了使程式盡可能簡單,一開始上傳採用段資料的時候採用了base64編碼,經測試大檔案感覺較慢。後來改為chunked方式上傳,速度能夠提公升好幾倍。

http伺服器與ftp伺服器互動邏輯

http伺服器與ftp伺服器互動邏輯 解決辦法 通過在http伺服器與ftp伺服器之間搭建redis來作為互動介質,及時互動ftp伺服器的狀態,使http伺服器對新加入的驗證請求做限制,進而達到我們的目的 操作流程 在ftp伺服器上,編寫shell指令碼用於獲取ftp伺服器各個引數狀態並存入redi...

Python搭建HTTP伺服器和FTP伺服器

預設安裝版本為pytho2.7 http伺服器搭建教程 進入要開放訪問的目錄下,執行命令 python m httwww.cppcns.compserver 9000 顯示上述表示安裝成功,且http服務的埠為 9000,不跟埠預設80埠 通過瀏覽器訪問該http服務 頁面顯示入下 伺服器端顯示如下...

檢測FTP服務並開啟FTP服務

1.檢測ftp服務是否開啟 1.1.通過查詢提供ftp服務的程序是否存在,並未找到任何包含ftp關鍵字的程序資訊,可判斷服務未開啟。root lb 1 ps ef grep ftp root 13049 12905 023 50 pts 0 00 00 00 grep color auto ftp ...