本文主要介紹在使用ossftp時可能遇到的問題及解決方案。
連接FTP Server時提示無法連接到服務器
問題現象
提示:嚴重錯誤,無法連接到服務器。
問題原因
輸入的AccessKey ID和AccessKey Secret有誤。
所用的AccessKey信息為RAM用戶的AccessKey,但RAM用戶沒有訪問OSS的權限。
解決方法
輸入正確的AccessKey ID和AccessKey Secret信息后重試連接服務器。
結合實際使用場景為RAM用戶配置相應的權限。
以下為常見場景的權限說明:
只讀訪問OSS某個Bucket的資源
所需權限為
oss:ListObjects
和oss:GetObject
在OSS某個Bucket中寫入數據
所需權限為
oss:ListObjects
和oss:PutObject
刪除Bucket中的數據
所需權限為
oss:ListObjects
和oss:DeleteObject
關于授權RAM用戶其他場景的配置示例,請參見RAM Policy常見示例。
使用FileZilla連接FTP Server時報錯501
問題現象
在Linux下運行FTP Server,然后使用FileZilla連接時報錯501。
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
重新啟動FileZilla。
登錄ossftp成功后List文件超時導致連接斷開
Bucket根目錄下的文件或文件夾數量過多。 登錄ossftp后,FTP Server會嘗試List Bucket根目錄下的所有文件和文件夾。單次可以List 1000個文件和文件夾。如果根目錄下文件和文件夾數量超過100萬,會導致1000次以上的List請求,從而造成超時。
數據傳輸不成功
問題原因
FTP協(xié)議的控制端口與數據端口不同。當FTP Server在被動模式下需要傳輸數據時,FTP Server會打開1個隨機端口用于連接客戶端。當FTP Server所在機器有端口限制時,可能會導致數據無法正常傳輸。
解決方法
運行
ftpserver.py
時,通過指定--passive_ports_start和--passive_ports_end選項設置本地端口的起止范圍,然后打開該范圍內的端口。
客戶端和FTP Server之間的連接經常斷開
問題原因
客戶端和FTP Server之間連接超時。
解決方法
設置客戶端和FTP Server之間連接不超時。以FileZilla工具為例,在
,將超時設置為0(表示不超時)。