FTP参数设置

需要使用FtpOption设置参数。

FtpOption ftpOption = new FtpOption();

一、登陆注册

使用FtpOption 中的login()进行登陆。

ftpOption.login("user", "pw");

long taskId = Aria.download(this)
    .loadFtp(mTaskId)
    .option(ftpOption)
      .create();

二、FTPS

使用FtpOption可以设置证书相关信息。

ftpOption.setProtocol(); 设置协议类型
        .setStorePath(storePath) // 设置证书路径
        .setStorePass(storePass) // 设置证书密码
        .setAlias(alias)                 // 设置证书别名
Aria.download(this)
    .loadFtp(mTaskId)
    .option(ftpOption)
    .resume();

FTPS常见错误:

  • 450 TLS session of data connection has not resumed or the session does not match the control connection错误 请尝试关闭P通道的文件传输TLS验证,如下: 关闭P通道文件传输验证
  • 521 PROT required error

    检查url的端口是否是服务器FTPS指定的端口
    在服务器中强制设置强制FTPS登录
    强制FTPS登录

三、主动模式

有的时候,你可能需要使用使用主动模式进行文件传输。 开启主动模式:

option.setConnectionMode(FtpConnectionMode.DATA_CONNECTION_MODE_ACTIVITY);

设置端口范围(非必须):

option.setActivePortRange(minPort, maxPort);

设置可被ftp服务器访问的本机ip(非必须):

option.setActiveExternalIPAddress(ip);

四、下载过程无法读取文件地址

4.1 服务器标志导致

如果出现文件早不到的情况,请尝试设置服务器标志,默认使用SYST_UNIX,如果是windows自带的ftp服务器,请使用SYST_NT标志

setServerIdentifier(FtpOption.FTPServerIdentifier.x)

4.2 日期时间格式导致

如果是时间格式导致的无法识别文件,请尝试设置下面两个方法: 如setDefaultDateFormatStr("d MMM yyyy")setRecentDateFormatStr("d MMM HH:mm")

// 默认的日期格式
setDefaultDateFormatStr(timeFormat)
// 修改日期的格式
setRecentDateFormatStr(timeFormat)

4.3 服务器语言设置

如:en, cn

setServerLanguageCode(code)

4.4 时区设置

如:America/Chicago or Asia/Rangoon 参考 TimeZone

setServerTimeZoneId(serverTimeZoneId)

主动模式常见问题: 主动模式:传输文件时,客户端随机开启一个端口,ftp服务器连接到客户端的该端口,ftp服务器推送数据到客户端。

  • Can't open data connection for transfer of xxxxx

    检查ftp服务器是否能访问手机ip
    检查ftp服务器的防火墙配置

五、常见错误

550 Home directory does not exist 原因:ftp服务器的存放文件的目录不存在

Copyright © 2018 laoyuyu. | 蜀ICP备17031160号.            更新时间: 2020-04-18

results matching ""

    No results matching ""