OSSFTP工具是一個特殊FTPserver,它接收普通FTP請求后,將對文件、文件夾的操作映射為對OSS的操作,從而使得您可以基于FTP協議來管理存儲在OSS上的文件。
注意生產環境請使用osssdk,OSSFTP工具主要面向個人用戶使用。
主要特性
跨平臺:
無論是Windows、Linux還是Mac,無論是32位還是64位操作系統,無論是圖形界面還是命令行都可以運行。
免安裝:
解壓后可直接運行。
免設置:
無需設置即可運行。
透明化:
FTP工具是python寫的,您可以看到完整的源碼,我們稍后也會開源到Github。
主要功能
支持文件和文件夾的上傳、下載、刪除等操作。
通過Multipart方式,分片上傳大文件。
支持大部分FTP指令,可以滿足日常FTP的使用需求。
注意
1.目前在1.0版本中,考慮到安裝部署的簡便,OSSFTP工具沒有支持TLS加密。由于FTP協議是明文傳輸的,
為了防止您的密碼泄漏,建議將FTPserver和client運行在同一臺機器上,通過127.0.0.1:port的方式來訪問。
2.不支持rename和move操作。
3.安裝包解壓后的路徑不要含有中文。
4.FTPserver的管理控制頁面在低版本的IE中可能打不開。
5.FTPserver支持的Python版本:Python2.6,Python2.7。
下載
由于Windows不會默認安裝Python2.7,所以安裝包中包含了Python2.7,免去您python安裝配置的麻煩,解壓即可使用。
由于Linux/Mac系統默認會安裝Python2.7或Python2.6,所以安裝包中不再包含可執行的python,只包含了相關依賴庫。
運行
首先解壓之前下載的文件,然后根據環境情況選擇不同的運行方式。
Windows:雙擊運行start.vbs即可
Linux:打開終端,運行 i.$bashstart.sh
Mac:雙擊start.command,或者在終端運行 i.$bashstart.command
上述步驟會啟動一個FTPserver,默認監聽在127.0.0.1的2048端口。同時,為了方便您對FTPserver的狀態進行管控,還會啟動一個web服務器,監聽在127.0.0.1的8192端口。如果您的系統有圖形界面,還會自動打開控制頁面,
如下所示:
大部分情況不要任何配置,就可以運行一個FTPserver了,如果想對FTPserver進行配置,請注意需要重啟才能生效。
連接到FTPserver推薦使用FileZilla客戶端去連接FTPserver。
下載安裝后,按如下方式連接即可:
主機:127.0.0.1
登錄類型:正常
用戶:access_key_id/bucket_name
密碼:access_key_secret
注意:
用戶中,/是必須的,如用戶
tSxyiUM3NKswPMEp/test-hz-jh-002。
-access_key_id和access_key_secret的獲取
高級使用
通過控制頁面管理FTPserver
修改監聽地址
如果需要通過網絡來訪問FTPserver,那么需要修改監聽地址,因為默認的監聽地址127.0.0.1只允許來自本地的訪問。可以修改成內網ip或公網ip。
修改監聽端口
修改FTPserver監聽的端口,建議端口大于1024,因為監聽1024以下的端口時需要管理員權限.
修改日志等級
設置FTPserver的日志級別。FTPserver的日志會輸出到data/ossftp/目錄下,可以通過控制頁面的日志按鈕在線查看。默認的日志界別為INFO,打印的日志信息較少,如果需要更詳細的日志信息,可以修改為DEBUG模式。如果希望減少日志的輸出,可以設置級別為WARNING或ERROR等。
設置Bucketendpoints
FTPserver默認會探索bucket的所屬location信息,隨后將請求發到對應的region(如oss-cn-hangzhou.aliyuncs.com或oss-cn-beijing.aliyuncs.com),FTPserver會優先嘗試內網訪問oss。如果您設置了bucketendpoints,如設置為test-bucket-a.oss-cn-hangzhou.aliyuncs.com,那么當訪問test-bucket-a時,就會使用oss-cn-hangzhou.aliyuncs.com域名。
注意
所有修改都需要重啟才能生效。
上述的所有修改其實都是修改的ftp根目錄下的config.json,所以您可以直接修改該文件。
直接啟動FTPserver(Linux/Mac)
可以直接啟動ossftp目錄下的ftpserver.py,免去web_server的開銷。
1.python ossftp/ftpserver.py
配置修改方式同上。
可能遇到的問題
如果連接FTPserver時,遇到以下錯誤:
有兩種可能:
輸入的access_key_id和access_key_secret有誤。
解決:請輸入正確的信息后再重試。
所用的access_key信息為ram子賬戶的access_key,而子賬戶不具有Listbuckets權限。
解決:當使用子賬戶訪問時,請在控制頁面中指定bucketendpoints,即告訴FTPserver某個bucket應該用什么endpoint來訪問。同時,子賬戶也需要一些必須的權限,關于使用ram訪問oss時的訪問控制。
只讀訪問
OSSFTP工具需要的權限列表為ListObjects、GetObject、HeadObject。關于如何創建一個具有只讀訪問的ram子賬戶,請參考圖文教程如何結合ram實現文件共享。
上傳文件
如果允許ram子賬戶上傳文件,還需要PutObject。
刪除文件
如果允許ram子賬戶刪除文件,還需要DeleteObject。
如果您在Linux下運行FTPserver,然后用FileZilla連接時遇到如下錯誤:
501 can't decode path (server filesystem encoding is ANSI_X3.4-1968)
一般是因為本地的中文編碼有問題。在將要運行start.sh的終端中輸入下面的命令,然后再重新啟動即可。
1.$ export LC_ALL=en_US.UTF-8; export LANG="en_US.UTF-8"; locale
|
新聞熱點
疑難解答