本文主要介绍在使用ossftp时可能遇到的问题及解决方案。

连接FTP Server时提示无法连接到服务器

  • 问题现象
  • 问题原因及解决方法
    • 问题原因:输入的AccessKey ID和AccessKey Secret有误。

      解决方法:输入正确的AccessKey ID和AccessKey Secret信息后重试连接服务器。

    • 问题原因:所用的AccessKey信息为RAM用户的AccessKey,但RAM用户没有访问OSS的权限。
      解决方法:请结合实际使用场景为RAM用户配置相应的权限,以下为常见场景的权限说明。
      • 只读访问OSS某个Bucket的资源

        所需权限为oss:ListObjectsoss:GetObject

      • 在OSS某个Bucket中写入数据

        所需权限为oss:ListObjectsoss:PutObject

      • 删除Bucket中的数据

        所需权限为oss:ListObjectsoss:DeleteObjects

      关于授权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)
  • 问题原因

    本地中文编码问题。

  • 解决方法
    1. 在将要运行start.sh的终端中输入下面的命令。
      $ export LC_ALL=en_US.UTF-8; export LANG="en_US.UTF-8"; locale
    2. 重新启动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(表示不超时)。