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