本文主要介绍在使用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协议的控制端口与数据端口不同。当FTP Server在被动模式下需要传输数据时,FTP Server会打开1个随机端口用于连接客户端。当FTP Server所在机器有端口限制时,可能会导致数据无法正常传输。
解决方法
运行
ftpserver.py
时,通过指定--passive_ports_start和--passive_ports_end选项设置本地端口的起止范围,然后打开该范围内的端口。
客户端和FTP Server之间的连接经常断开
问题原因
客户端和FTP Server之间连接超时。
解决方法
设置客户端和FTP Server之间连接不超时。以FileZilla工具为例,在
,将超时设置为0(表示不超时)。